- Php как вывести значение ключа массива
- array_keys — Возвращает все или некоторое подмножество ключей массива
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Смотрите также
- Php как вывести значение ключа массива
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Смотрите также
- User Contributed Notes 5 notes
- array_keys
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Смотрите также
- User Contributed Notes 28 notes
Php как вывести значение ключа массива
Меняет местами индексы и значения массива.
Синтаксис:
Эта функция «пробегает» по массиву и меняет местами его ключи и значения. Исходный массив arr не изменяется, а результирующий массив просто возвращается. Если в массиве присутствовало несколько элементов с одинаковыми значениями, учитываться будет только последний из них.
Значения массива arr должны быть либо целыми числами, либо строковыми значениями. Иначе пара ключ / значение не будут обработаны.
Функция array_flip() возвратит FALSE, если обработка массива вызвала ошибку.
Пример использования функции array_flip():
Пример использования функции array_flip():
Приведенный выше пример выведет следующее:
Функция поддерживается PHP 4, PHP 5
Функция устанавливает значения ключей массива в верхний или нижний регистр.
Синтаксис:
Функция array_change_key_case() возвращает исходный массив arr, ключи которого преобразованы в верхний или нижний регистр.
Необязательный параметр registr может принимать следующие значения:
CASE_LOWER — все ключи массива преобразуются в нижний регистр (значение по умолчанию);
CASE_UPPER — в верхний регистр.
Данная функция не изменяет ключи, состоящие из чисел.
Пример использования функции array_change_key_case():
Пример выведет следующее:
Функция поддерживается PHP 4 >= 4.2.0, PHP 5
Функция объединяет два массива, причем значения первого становяться ключами, а значения второго — значениями.
Синтаксис:
Функция array_combine() возвращает массив, ключами которого являются значения массива keys, а значениями — значения массива values.
Функция возвратит FALSE, если размерность массивов keys и values не совпадают, или эти массивы не содержат значений.
Пример использования функции array_combine():
Пример выведет следующее:
Функция поддерживается PHP 5
Проверка существования заданного ключа в массиве.
Синтаксис:
Функция array_key_exists() возвратит TRUE, если в массиве search присутствует элемент с индексом key.
В противном случае возвратит FALSE.
Пример использования функции array_key_exists():
В PHP 4.0.6. имя этой функции key_exists().
Функция поддерживается PHP 4 >= 4.0.1, PHP 5
Вычислить произведение значений массива (PHP 5 >= 5.1.0RC1)
array_product() возвращает произведение значений массива как целое число или число с плавающей точкой.
Пример использования array_product()
Результат выполнения данного примера:
Итеративно уменьшить массив к единственному значению, используя функцию обратного вызова (PHP 4 >= 4.0.5, PHP 5)
array_reduce() итеративно применяет функцию function к элементам массива input и, таким образом, сводит массив к единственному значению. Если указан дополнительный параметр initial, он будет использован в начале процесса, или в качестве окончательного результата, если массив пуст.
В результате переменная $b содержит 15, $c содержит 1200 (= 1*2*3*4*5*10), и $d содержит 1.
Рекурсивно применить пользовательскую функцию к каждому элементу массива (PHP 5)
Применяет пользовательскую функцию funcname к каждому элементу массива input. Эта функция обрабатывает каждый элемент многомерного массива. Обычно у функции funcname два параметра. Значение массива array в качестве первого параметра, и ключ/индекс в качестве второго. Если указан дополнительный параметр userdata, он будет передан в качестве третьего параметра в функцию обратного вызова funcname.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Замечание: Если требуется, чтобы функция funcname изменила значения в массиве, определите первый параметр funcname как ссылку. Тогда все изменения будут применены к элементам массива.
Пример использования array_walk_recursive()
Вывод вышеприведённой программы:
Обратите внимание, что ключ ‘sweet’ никогда не отображается. Никакой ключ, соответствующий значению типа array, не будет передан в функцию.
Возвращает список из ключей массива.
Синтаксис:
Функция возвращает массив, значениями которого являются все строковые и числовые ключи массива arr. Если задан необязательный параметр search_value, то она вернет только те ключи, которым соответствуют значению search_value.
Пример испольльзования функции array_keys():
Приведенный выше пример выведет следующее:
Функция array_keys() появилась в PHP 4.
Ее эквивалент для PHP 3:
Функция поддерживается PHP 4, PHP 5
Удаление ассоциативных индексов массива.
Синтаксис:
Функция array_values() возвращает список всех значений в ассоциативном массиве arr. При этом она заменяет все строковые ключи на числовые.
Пример использования функции array_values():
Этот пример выведет:
Функция поддерживается PHP 4, PHP 5
Осуществляет проверку массива на наличие значения.
Синтаксис:
Функция in_array() возвратит TRUE, если в массиве haystack содержится элемент со значением needle, и FALSE в противном случае.
Если установить третий необязательный параметр strict в значение TRUE, то функция in_array() при проверке также будет сравнивать типы значений.
Замечание: Если параметр needle является строкой, то при сравнении регистр символов учитывается.
Замечание: В PHP версии ниже 4.2.0 параметр needle не мог быть массивом.
Пример использования функции in_array():
Второе условие не сработает, т.к. поиск в массиве идет с учетом регистра.
Пример выведет:
Пример использования функции in_array(): Использование параметра strict
Функция поддерживается PHP 4, PHP 5
Возвращает количество значений массива.
Синтаксис:
Эта функция подсчитывает, сколько раз каждое значение встречается в массиве arr, и возвращает ассоциативный массив с ключами —
элементами массива и значениями — количеством повторов этих элементов. Иными словами, функция array_count_values()
подсчитывает частоту появления значений в массиве arr.
Пример использования функции array_count_values():
Пример выведет следующее:
Функция поддерживается PHP 4, PHP 5
Возвращает число элементов массива.
Синтаксис:
Функция sizeof() возвращает количество элементов в массиве arr на подобие действия функции count().
Возвращает число элементов в массиве или объекте.
Синтаксис:
Функция count() возвращает число элементов в массиве или объекте var. В случае, если var — скалярная переменная, то функция возвращает 1, если такая переменная существует, или 0, если такой переменной нет.
Надо отметить, что 0 возвращается и тогда, когда указан массив, не содержащий элементов (NULL).
Если задан необязательный параметр mode, то будет подсчитано общее количество элементов в массиве. Это может быть полезно при нахождении количества элементов в многомерных массивах.
Пример использования функции count():
Пример использования функции count(): (PHP >= 4.2.0)
Функция поддерживается PHP 3, PHP 4, PHP 5
Возвращает сумму всех элементов массива.
Синтаксис:
Функция array_sum() возвращает сумму всех числовых элементов массива. От типа значений в массиве зависит тип возвращаемого числа (integer или float).
Пример использования функции array_sum():
Этот пример выведет следующее:
Функция поддерживается PHP 4 >=4.0.4, PHP 5
Производит случайную выборку индексов массива.
Синтаксис:
Функция array_rand() будет полезной, если вы хотите выбрать одно или несколько случайных значений из массива. Эта функция возвращает в массиве выбранные случайным образом индексы элементов массива arr.
Аргумент num_req указывает число возвращаемых индексов. В случае, если выбирается один элемент, то функция array_rand() возвратит случайный ключ в виде значения.
Пример использования функции array_rand():
Источник
array_keys — Возвращает все или некоторое подмножество ключей массива
(PHP 4, PHP 5, PHP 7)
array_keys — Возвращает все или некоторое подмножество ключей массива
Описание
Функция array_keys() возвращает числовые и строковые ключи, содержащиеся в массиве array .
Если указан необязательный параметр search_value , функция возвращает только ключи, совпадающие с этим параметром. В обратном случае, функция возвращает все ключи массива array .
Список параметров
Массив, содержащий возвращаемые ключи.
Если указано, будут возвращены только ключи, содержащие данное значение.
Определяет использование строгой проверки на равенство (===) при поиске.
Возвращаемые значения
Возвращает массив со всеми ключами array .
Примеры
Пример #1 Пример использования array_keys()
= array( 0 => 100 , «color» => «red» );
print_r ( array_keys ( $array ));
$array = array( «blue» , «red» , «green» , «blue» , «blue» );
print_r ( array_keys ( $array , «blue» ));
$array = array( «color» => array( «blue» , «red» , «green» ),
«size» => array( «small» , «medium» , «large» ));
print_r ( array_keys ( $array ));
?>
Результат выполнения данного примера:
Смотрите также
- array_values() — Выбирает все значения массива
- array_key_exists() — Проверяет, присутствует ли в массиве указанный ключ или индекс
- array_search() — Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи
Источник
Php как вывести значение ключа массива
(PHP 4, PHP 5, PHP 7, PHP 8)
key — Выбирает ключ из массива
Описание
key() возвращает индекс текущего элемента массива.
Список параметров
Возвращаемые значения
Функция key() просто возвращает ключ того элемента массива, на который в данный момент указывает внутренний указатель массива. Она не сдвигает указатель ни в каком направлении. Если внутренний указатель указывает вне границ массива или массив пуст, key() возвратит null .
Примеры
Пример #1 Пример использования key()
= array(
‘fruit1’ => ‘apple’ ,
‘fruit2’ => ‘orange’ ,
‘fruit3’ => ‘grape’ ,
‘fruit4’ => ‘apple’ ,
‘fruit5’ => ‘apple’ );
// этот цикл выведет все ключи ассоциативного массива,
// значения которых равны «apple»
while ( $fruit_name = current ( $array )) <
if ( $fruit_name == ‘apple’ ) <
echo key ( $array ), «\n» ;
>
next ( $array );
>
?>
Результат выполнения данного примера:
Смотрите также
- current() — Возвращает текущий элемент массива
- next() — Перемещает указатель массива вперёд на один элемент
- foreach
User Contributed Notes 5 notes
Note that using key($array) in a foreach loop may have unexpected results.
When requiring the key inside a foreach loop, you should use:
foreach($array as $key => $value)
I was incorrectly using:
foreach( $array as $value )
<
$mykey = key ( $array );
>
?>
and experiencing errors (the pointer of the array is already moved to the next item, so instead of getting the key for $value, you will get the key to the next value in the array)
CORRECT:
foreach( $array as $key => $value )
<
$mykey = $key ;
>
A noob error , but felt it might help someone else out there .
Suppose if the array values are in numbers and numbers contains `0` then the loop will be terminated. To overcome this you can user like this
while ( $fruit_name = current ( $array )) <
echo key ( $array ). ‘
‘ ;
next ( $array );
>
// the way will be break loop when arra(‘2’=>0) because its value is ‘0’, while(0) will terminate the loop
// correct approach
while ( ( $fruit_name = current ( $array )) !== FALSE ) <
echo key ( $array ). ‘
‘ ;
next ( $array );
>
//this will work properly
?>
Needed to get the index of the max/highest value in an assoc array.
max() only returned the value, no index, so I did this instead.
( $x ); // optional.
arsort ( $x );
$key_of_max = key ( $x ); // returns the index.
?>
(Editor note: Or just use the array_keys function)
Make as simple as possible but not simpler like this one 🙂
$k = array();
for($i = 0; $i
In addition to FatBat’s response, if you’d like to find out the highest key in an array (assoc or not) but don’t want to arsort() it, take a look at this:
= [ ‘3’ => 14 , ‘1’ => 15 , ‘4’ => 92 , ’15’ => 65 ];
$key_of_max = array_search ( max ( $arr ) , $arr );
Источник
array_keys
(PHP 4, PHP 5, PHP 7, PHP 8)
array_keys — Возвращает все или некоторое подмножество ключей массива
Описание
Функция array_keys() возвращает числовые и строковые ключи, содержащиеся в массиве array .
Если указан параметр search_value , функция возвращает ключи у которых значения элементов массива совпадают с этим параметром. В обратном случае, функция возвращает все ключи массива array .
Список параметров
Массив, содержащий возвращаемые ключи.
Если указано, будут возвращены только ключи у которых значения элементов массива совпадают с этим параметром.
Определяет использование строгой проверки на равенство (===) при поиске.
Возвращаемые значения
Возвращает массив со всеми ключами array .
Примеры
Пример #1 Пример использования array_keys()
= array( 0 => 100 , «color» => «red» );
print_r ( array_keys ( $array ));
$array = array( «blue» , «red» , «green» , «blue» , «blue» );
print_r ( array_keys ( $array , «blue» ));
$array = array( «color» => array( «blue» , «red» , «green» ),
«size» => array( «small» , «medium» , «large» ));
print_r ( array_keys ( $array ));
?>
Результат выполнения данного примера:
Смотрите также
- array_values() — Выбирает все значения массива
- array_combine() — Создаёт новый массив, используя один массив в качестве ключей, а другой для его значений
- array_key_exists() — Проверяет, присутствует ли в массиве указанный ключ или индекс
- array_search() — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае успешного выполнения
User Contributed Notes 28 notes
It’s worth noting that if you have keys that are long integer, such as ‘329462291595’, they will be considered as such on a 64bits system, but will be of type string on a 32 bits system.
for example:
= array( ‘329462291595’ => null , ‘ZZ291595’ => null );
foreach( array_keys ( $importantKeys ) as $key ) <
echo gettype ( $key ). «\n» ;
>
?>
will return on a 64 bits system:
but on a 32 bits system:
I hope it will save someone the huge headache I had 🙂
Here’s how to get the first key, the last key, the first value or the last value of a (hash) array without explicitly copying nor altering the original array:
= array( ‘first’ => ‘111’ , ‘second’ => ‘222’ , ‘third’ => ‘333’ );
// get the first key: returns ‘first’
print array_shift ( array_keys ( $array ));
// get the last key: returns ‘third’
print array_pop ( array_keys ( $array ));
// get the first value: returns ‘111’
print array_shift ( array_values ( $array ));
// get the last value: returns ‘333’
print array_pop ( array_values ( $array ));
?>
Since 5.4 STRICT standards dictate that you cannot wrap array_keys in a function like array_shift that attempts to reference the array.
Invalid:
echo array_shift( array_keys( array(‘a’ => ‘apple’) ) );
Valid:
$keys = array_keys( array(‘a’ => ‘apple’) );
echo array_shift( $keys );
But Wait! Since PHP (currently) allows you to break a reference by wrapping a variable in parentheses, you can currently use:
echo array_shift( ( array_keys( array(‘a’ => ‘apple’) ) ) );
However I would expect in time the PHP team will modify the rules of parentheses.
There’s a lot of multidimensional array_keys function out there, but each of them only merges all the keys in one flat array.
Here’s a way to find all the keys from a multidimensional array while keeping the array structure. An optional MAXIMUM DEPTH parameter can be set for testing purpose in case of very large arrays.
NOTE: If the sub element isn’t an array, it will be ignore.
function array_keys_recursive ( $myArray , $MAXDEPTH = INF , $depth = 0 , $arrayKeys = array()) <
if( $depth $MAXDEPTH ) <
$depth ++;
$keys = array_keys ( $myArray );
foreach( $keys as $key ) <
if( is_array ( $myArray [ $key ])) <
$arrayKeys [ $key ] = array_keys_recursive ( $myArray [ $key ], $MAXDEPTH , $depth );
>
>
>
return $arrayKeys ;
>
?>
EXAMPLE:
input:
array(
‘Player’ => array(
‘id’ => ‘4’,
‘state’ => ‘active’,
),
‘LevelSimulation’ => array(
‘id’ => ‘1’,
‘simulation_id’ => ‘1’,
‘level_id’ => ‘1’,
‘Level’ => array(
‘id’ => ‘1’,
‘city_id’ => ‘8’,
‘City’ => array(
‘id’ => ‘8’,
‘class’ => ‘home’,
)
)
),
‘User’ => array(
‘id’ => ’48’,
‘gender’ => ‘M’,
‘group’ => ‘user’,
‘username’ => ‘Hello’
)
)
output:
array(
‘Player’ => array(),
‘LevelSimulation’ => array(
‘Level’ => array(
‘City’ => array()
)
),
‘User’ => array()
)
If an array is empty (but defined), or the $search_value is not found in the array, an empty array is returned (not false, null, or -1). This may seem intuitive, especially given the documentation says an array is returned, but I needed to sanity test to be sure:
= array();
var_dump ( array_keys ( $emptyArray , 99 )); // array (size=0) \ empty
$filledArray = array( 11 , 22 , 33 , 42 );
var_dump ( array_keys ( $filledArray , 99 )); // array (size=0) \ empty
It is worth noting that array_keys does not maintain the data-type of the keys when mapping them to a new array. This created an issue with in_array and doing a lookup on characters from a string. NOTE: my lookup $array has a full map of numbers and characters — upper and lower — to do an simple faux encryption with.
= array(
‘e’ => ‘ieio’
, ‘1’ => ‘one’
, ‘2’ => ‘two’
, ‘0’ => ‘zero’
);
var_dump ( $array );
$keys = array_keys ( $array );
var_dump ( $keys );
$string = ‘1e0’ ;
for ( $i = 0 ; $i strlen ( $string ); $i ++) <
if ( in_array ( $string [ $i ], $keys , ‘strict’ )) echo ‘dude ‘ ;
else echo ‘sweet ‘ ;
>
?>
Outputs:
array (size=4)
‘e’ => string ‘ieio’ (length=4)
1 => string ‘one’ (length=3)
2 => string ‘two’ (length=3)
0 => string ‘zero’ (length=4)
array (size=4)
0 => string ‘e’ (length=1)
1 => int 1
2 => int 2
3 => int 0
sweet dude sweet
—-
expected to see:
dude dude dude
might be worth noting in the docs that not all associative (string) keys are a like, output of the follow bit of code demonstrates — might be a handy introduction to automatic typecasting in php for some people (and save a few headaches):
= array( «0» => «0» , «1» => «1» , «» => «2» , » » => «3» );
echo ‘how php sees this array: array(«0″=>»0″,»1″=>»1″,»» =>»2″,» «=>»3»)’ , «\n————\n» ;
var_dump ( $r ); print_r ( $r ); var_export ( $r );
echo «\n————\n» , ‘var_dump(«0″,»1″,»»,» «) = ‘ , «\n————\n» ;
var_dump ( «0» , «1» , «» , » » );
?>
OUTPUTS:
Sorry for my english.
I wrote a function to get keys of arrays recursivelly.
function recursive_keys ( $input , $search_value = null )<
$output = ( $search_value !== null ? array_keys ( $input , $search_value ) : array_keys ( $input )) ;
foreach( $input as $sub ) <
if( is_array ( $sub )) <
$output = ( $search_value !== null ? array_merge ( $output , recursive_keys ( $sub , $search_value )) : array_merge ( $output , recursive_keys ( $sub ))) ;
>
>
return $output ;
>
?>
I hope it will be usefull
Here’s a function I needed to collapse an array, in my case from a database query. It takes an array that contains key-value pairs and returns an array where they are actually the key and value.
function array_collapse ( $arr , $x , $y ) <
$carr = array();
while ( $el = current ( $arr )) <
$carr [ $el [ $x ] ] = $el [ $y ];
next ( $arr );
>
return $carr ;
>
?>
Example usage (pseudo-database code):
= db_query ( ‘SELECT name, value FROM properties’ );
$result = db_returnAll ( $query );
/* This will return an array like so:
[
[‘name’ -> ‘color’, ‘value’ -> ‘blue’],
[‘name’ -> ‘style’, ‘value’ -> ‘wide-format’],
[‘name’ -> ‘weight’, ‘value’ -> 3.6],
[‘name’ -> ‘name’, ‘value’ -> ‘Waerdthing’]
]
$propArr = array_collapse ( $result , ‘name’ , ‘value’ );
/* Now this array looks like:
[
[‘color’ -> ‘blue’],
[‘style’ -> ‘wide-format’],
[‘weight’ -> 3.6],
[‘name’ -> ‘Waerdthing’],
?>
I found this handy for using with json_encode and am using it for my project http://squidby.com
[Editor’s note: For a complete solution to the printing of complex structures or hashes, see the PEAR::Var_Dump package: http://pear.php.net/package-info.php?pacid=103 , use «pear install Var_Dump» to get it]
This function will print all the keys of a multidimensional array in html tables.
It will help to debug when you don?t have control of depths.
function show_keys ( $ar )<
foreach ( $ar as $k => $v ) <
echo »
» . $k . » |
» ;
if ( is_array ( $ar [ $k ])) <
show_keys ( $ar [ $k ]);
>
// Multidimensional array ->
$arvore = array();
$arvore [ ‘1’ ] = array();
$arvore [ ‘1’ ][ ‘1.1’ ] = array( ‘1.1.1’ , ‘1.1.2’ , ‘1.1.3’ );
$arvore [ ‘1’ ][ ‘1.2’ ] = array( ‘1.2.1’ , ‘1.2.2’ , ‘1.2.3’ );
$arvore [ ‘1’ ][ ‘1.3’ ] = array( ‘1.3.1’ , ‘1.3.2’ , ‘1.3.3’ );
$arvore [ ‘2’ ] = array();
$arvore [ ‘2’ ][ ‘2.1’ ] = array( ‘2.1.1’ , ‘2.1.2’ , ‘2.1.3’ );
$arvore [ ‘2’ ][ ‘2.2’ ] = array( ‘2.2.1’ , ‘2.2.2’ , ‘2.2.3’ );
$arvore [ ‘2’ ][ ‘2.3’ ] = array( ‘2.3.1’ , ‘2.3.2’ , ‘2.3.3’ );
$arvore [ ‘3’ ] = array();
$arvore [ ‘3’ ][ ‘3.1’ ] = array( ‘3.1.1’ , ‘3.1.2’ , ‘3.1.3’ );
$arvore [ ‘3’ ][ ‘3.2’ ] = array( ‘3.2.1’ , ‘3.2.2’ , ‘3.2.3’ );
$arvore [ ‘3’ ][ ‘3.3’ ] = array( ‘3.3.1’ , ‘3.3.2’ =>array( ‘3.3.2.1’ , ‘3.3.2.2’ ), ‘3.3.3’ );
// show_keys ( $arvore );
?>
An alternative to RQuadling at GMail dot com’s array_remove() function:
function array_remove (array $array , $value , $strict = false )
<
return array_diff_key ( $array , array_flip ( array_keys ( $array , $value , $strict )));
>
?>
The position of an element.
One can apply array_keys twice to get the position of an element from its key. (This is the reverse of the function by cristianDOTzuddas.) E.g., the following may output «yes, we have bananas at position 0».
= array( «banana» => «yellow» , «apple» = «red» );
$k = get_some_fruit ();
if (isset( $a [ $k ]))
<
list( $pos ) = array_keys ( array_keys ( $a ), $k );
print «yes, we have < $k >s at position $pos \n» ;
>
?>
Not amazingly efficient, but I see no better alternative.
/* A Function created by myself for checking multiple array keys
For Example u got an Array like $_SESSION and u wanna know if the keys ‘user’,’pass’,’email’ and ‘type’ exists.
function mKeyChecker ( $arr , $keys =array()) <
if( count ( $keys ) > 1 ) <
$valid_keys = 0 ;
foreach( $keys as $key ) <
if( array_key_exists ( $key , $arr )) $valid_keys ++;
>
if( $valid_keys == count ( $keys )) <
return true ;
> else <
return false ;
>
> else if( count ( $keys ) == 1 ) <
if( array_key_exists ( $key [ 0 ], $arr )) <
return true ;
> else <
return false ;
>
> else <
return false ;
>
>
if( mKeyChecker ( $_SESSION ,array( ‘id’ , ‘user’ , ’email’ , ‘type’ ))) <
echo «is!» ;
> else <
echo «not!» ;
>
I was looking for a function that simply unset a variable amout of values from a one-dimensional array by key. I ended up with this (returns the array itself if no further parameter than the array is given, false with no params — does not change the source array)
usage: array_remove(array $input [, mixed key . ])
function array_remove () <
if ( $stack = func_get_args ()) <
$input = array_shift ( $stack );
foreach ( $stack as $key ) <
unset( $input [ $key ]);
>
return $input ;
>
return false ;
>
= array( ‘a’ => ‘fun’ , ‘b’ => 3.14 , ‘sub’ => array( ‘1’ , ‘2’ , ‘3’ ), ‘d’ => ‘what’ , ‘e’ => ‘xample’ , 5 => ‘x’ );
print_r ( $a );
print_r ( array_remove ( $a , ‘d’ , ‘b’ , 5 , ‘sub’ ));
?>
Output:
Hope this helps someone.
# array_keys() also return the key if it’s boolean but the boolean will return as 1 or 0. It will return empty if get NULL value as key. Consider the following array:
$a = array(
«first_index» => «This is the first element» ,
true => 3 ,
false => 2 ,
4.5 => ‘Something’ ,
«08» => 5 ,
«8» => 6 ,
NULL => ‘Null key’
);
print_r ( array_keys ( $a ));
Array
(
[ 0 ] => first_index
[ 1 ] => 1
[ 2 ] => 0
[ 3 ] => 4
[ 4 ] => 08
[ 5 ] => 8
[ 6 ] =>
)
This function will extract keys from a multidimensional array
function multiarray_keys ( $ar ) <
foreach( $ar as $k => $v ) <
$keys [] = $k ;
if ( is_array ( $ar [ $k ]))
$keys = array_merge ( $keys , multiarray_keys ( $ar [ $k ]));
>
return $keys ;
>
?>
Example code:
= array( «color» => array( «1stcolor» => «blue» , «2ndcolor» => «red» , «3rdcolor» => «green» ),
«size» => array( «small» , «medium» , «large» ));
Array
(
[color] => Array
(
[1stcolor] => blue
[2ndcolor] => red
[3rdcolor] => green
)
[size] => Array
(
[0] => small
[1] => medium
[2] => large
)
Array
(
[0] => color
[1] => 1stcolor
[2] => 2ndcolor
[3] => 3rdcolor
[4] => size
[5] => 0
[6] => 1
[7] => 2
)
All the cool notes are gone from the site.
Here’s an example of how to get all the variables passed to your program using the method on this page. This prints them out so you can see what you are doing.
Simple ways to prefixing arrays;
function array_keys_prefix ( $arr , $pref = «» ) <
$rarr = array();
foreach ( $arr as $key => $val ) <
$rarr [ $pref . $key ] = $val ;
>
return $rarr ;
>
function array_keys_prefix_multi ( $arr , $pref = «» ) <
$rarr = array();
foreach ( $arr as $key => $val ) <
$rarr [] = array_keys_prefix ( $val , $pref );
>
return $rarr ;
>
// $a = array(«foo» => «FOO», «bar» => «BAR», «baz» => «BAZ»); // or
$a = array( «foo» => «FOO» , «bar» => «BAR» , «baz» => array( 1 , 2 , 3 ));
print_r ( array_keys_prefix ( $a , «my_» ));
// db fetch.
$products = array(
array( «id» => 1 , «name» => «Foo» ),
array( «id» => 2 , «name» => «Bar» )
);
print_r ( array_keys_prefix_multi ( $products , «product_» ));
?>
Array
(
[my_foo] => FOO
[my_bar] => BAR
[my_baz] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[product_id] => 2
[product_name] => Bar
)
I was looking for a function that deletes either integer keys or string keys (needed for my caching).
As I didn’t find a function I came up with my own solution.
I didn’t find the propiest function to post to so I will post it here, hope you find it useful.
?>
You can of course define constants to have a nicer look, I have chosen these: EXTR_INT = 1; EXTR_STRING = 2
EXTR_INT will return an array where keys are only integer while
EXTR_STRING will return an array where keys are only string
Have fun with it.
A needed a function to find the keys which contain part of a string, not equalling a string.
function array_keys_contain ( $input , $search_value , $strict = false )
<
$tmpkeys = array();
Источник