php сделать ключом значение массива
array_fill
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
array_fill — Заполняет массив значениями
Описание
Список параметров
Первый индекс возвращаемого массива.
Количество вставляемых элементов. Их должно быть больше или равно нулю.
Значение для заполнения
Возвращаемые значения
Возвращает заполненный массив
Ошибки
Вызывает предупреждение E_WARNING в случае, если параметр count меньше нуля.
Примеры
Пример #1 Пример использования array_fill()
Результат выполнения данного примера:
Примечания
Смотрите также подробное описание отрицательных ключей в разделе Массивы.
Смотрите также
User Contributed Notes 7 notes
This is what I recently did to quickly create a two dimensional array (10×10), initialized to 0:
Using objects with array_fill may cause unexpected results. Consider the following:
//now we change the attribute of the object stored in index 0
//this actually changes the attribute for EACH object in the ENTIRE array
$array [ 0 ]-> bar = «apple» ;
I made this function named «array_getMax» that returns te maximum value and index, from array:
//using array_search_all by helenadeus at gmail dot com
As of PHP 8.0 the example code
Fill missing keys in a (numerically-indexed) array with a default value
array_fill() cannot be used to setup only missing keys in an array. This may be necessary for example before using implode() on a sparse filled array.
The solution is to use this function:
array_keys
(PHP 4, PHP 5, PHP 7, PHP 8)
array_keys — Возвращает все или некоторое подмножество ключей массива
Описание
Список параметров
Массив, содержащий возвращаемые ключи.
Если указано, будут возвращены только ключи у которых значения элементов массива совпадают с этим параметром.
Определяет использование строгой проверки на равенство (===) при поиске.
Возвращаемые значения
Примеры
Пример #1 Пример использования array_keys()
Результат выполнения данного примера:
Смотрите также
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.
?>
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:
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’) ) );
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.
output:
array(
‘Player’ => array(),
‘LevelSimulation’ => array(
‘Level’ => array(
‘City’ => array()
)
),
‘User’ => array()
)
array (size=4)
0 => string ‘e’ (length=1)
1 => int 1
2 => int 2
3 => int 0
—-
expected to see:
dude dude dude
Sorry for my english.
I wrote a function to get keys of arrays recursivelly.
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.
?>
Example usage (pseudo-database code):
= db_query ( ‘SELECT name, value FROM properties’ );
/* This will return an array like so:
/* Now this array looks like:
?>
I found this handy for using with json_encode and am using it for my project http://squidby.com
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.
An alternative to RQuadling at GMail dot com’s array_remove() function:
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».
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:
Array
(
[ 0 ] => first_index
[ 1 ] => 1
[ 2 ] => 0
[ 3 ] => 4
[ 4 ] => 08
[ 5 ] => 8
[ 6 ] =>
)
This function will extract keys from a multidimensional array
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;
[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
A needed a function to find the keys which contain part of a string, not equalling a string.
Php сделать ключом значение массива
Меняет местами индексы и значения массива.
Синтаксис:
Эта функция «пробегает» по массиву и меняет местами его ключи и значения. Исходный массив arr не изменяется, а результирующий массив просто возвращается. Если в массиве присутствовало несколько элементов с одинаковыми значениями, учитываться будет только последний из них.
Значения массива arr должны быть либо целыми числами, либо строковыми значениями. Иначе пара ключ / значение не будут обработаны.
Функция array_flip() возвратит FALSE, если обработка массива вызвала ошибку.
Пример использования функции array_flip():
Пример использования функции array_flip():
Приведенный выше пример выведет следующее:
Функция поддерживается PHP 4, PHP 5
Функция устанавливает значения ключей массива в верхний или нижний регистр.
Синтаксис:
Пример выведет следующее:
Функция поддерживается PHP 4 >= 4.2.0, PHP 5
Пример выведет следующее:
Функция поддерживается 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, он будет использован в начале процесса, или в качестве окончательного результата, если массив пуст.
Рекурсивно применить пользовательскую функцию к каждому элементу массива (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
Возвращает количество значений массива.
Синтаксис:
Пример выведет следующее:
Функция поддерживается PHP 4, PHP 5
Возвращает число элементов массива.
Синтаксис:
Функция sizeof() возвращает количество элементов в массиве arr на подобие действия функции count().
Возвращает число элементов в массиве или объекте.
Синтаксис:
Если задан необязательный параметр 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():
Массивы в PHP
Что такое массив
Например, так можно объявить массив с тремя значениями:
Массивы также отлично подходят для объединения нескольких связанных между собой значений, например характеристик товара:
Создание массива
Для создания пустого массива просто укажите квадратные скобки вместо значения:
Результат в браузере:
PHP сообщает нам, что в переменной лежит массив (англ. array), в котором находится 0 значений.
Чтобы объявить массив с данными, просто перечислите значения в квадратных скобках:
Создание массивов с помощью квадратных скобок работает начиная с версии PHP 5.4. До этого использовался более громоздкий синтаксис:
Ключи и значения массива
Массив состоит из ключей (индексов) и соответствующих им значений. Это можно представить как таблицу:
Ключ | Значение |
---|---|
0 | Samsung |
1 | Apple |
2 | Nokia |
У каждого значения есть свой ключ. В массиве не может быть несколько одинаковых ключей.
Вернёмся к предыдущему примеру и посмотрим, что лежит в массиве:
Результат в браузере:
Когда мы создаём массив без указания ключей, PHP генерирует их автоматически в виде чисел, начиная с 0.
Указание ключей происходит с помощью конструкции => :
Простые и ассоциативные массивы
Когда мы создаём массив с числовыми ключами, такой массив называется простым или числовым.
Вывод массива
Вывод элементов массива выглядит следующим образом:
Однако обе функции выводят информацию на одной строке, что в случае с массивами превращается в кашу. Чтобы этого не происходило, используйте тег ‘;
Результат в браузере:
Также вывести содержимое массива можно с помощью цикла foreach:
Подробней работу цикла foreach мы разберём в отдельном уроке.
Добавление и удаление элементов
Добавление новых элементов в массив выглядит следующим образом:
Но если название ключа не играет роли, его можно опустить:
Удалить элемент массива можно с помощью функции unset() :
Двумерные и многомерные массивы
В качестве значения массива мы можем передать ещё один массив:
Обратиться к элементу многомерного массива можно так:
Теперь мы можем хранить в одном массиве целую базу товаров:
Или альтернативный вариант:
Задача 1
Задача 2
2. Создайте подмассив streets с любыми случайными улицами. Каждая улица должна иметь имя (name) и количество домов (buildings_count), а также подмассив из номеров домов (old_buildings), подлежащих сносу.
array_fill_keys
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
array_fill_keys — Создаёт массив и заполняет его значениями с определёнными ключами
Описание
Список параметров
Массив значений, которые будут использованы в качестве ключей. Некорректные ключи массива будут преобразованы в строку ( string ).
Возвращаемые значения
Возвращает заполненный массив
Примеры
Пример #1 Пример использования array_fill_keys()
Результат выполнения данного примера:
Смотрите также
User Contributed Notes 8 notes
now string key «1» become an integer value 1, be careful.
Some of the versions do not have this function.
I try to write it myself.
You may refer to my script below
RE: bananasims at hotmail dot com
I also needed a work around to not having a new version of PHP and wanting my own keys. bananasims code doesn’t like having an array as the second parameter.
Here’s a slightly modified version than can handle 2 arrays as inputs:
//we want these values to be keys
$arr1 = (0 => «abc», 1 => «def»);
/we want these values to be values
$arr2 = (0 => 452, 1 => 128);
returns:
abc => 452, def =>128
Scratchy’s version still doesn’t work like the definition describes. Here’s one that can take a mixed variable as the second parameter, defaulting to an empty string if it’s not specified. Don’t know if this is exactly how the function works in later versions but it’s at least a lot closer.
This works for either strings or numerics, so if we have
$arr1 = array(0 => ‘abc’, 1 => ‘def’);
$arr2 = array(0 => 452, 1 => 128);
$arr3 = array(0 => ‘foo’, 1 => ‘bar’);
array_fill_keys($arr1,$arr2)
returns: [abc] => 452, [def] => 128
array_fill_keys($arr1,0)
returns: [abc] => 0, [def] => 0
array_fill_keys($arr2,$arr3)
returns: [452] => foo, [128] => bar
array_fill_keys($arr3,’BLAH’)
returns: [foo] => BLAH, [bar] => BLAH
and array_fill_keys($arr1)
returns: [abc] =>, [def] =>