Как узнать индекс элемента массива php

Массивы в PHP

Что такое массив

Например, так можно объявить массив с тремя значениями:

Массивы также отлично подходят для объединения нескольких связанных между собой значений, например характеристик товара:

Создание массива

Для создания пустого массива просто укажите квадратные скобки вместо значения:

Результат в браузере:

PHP сообщает нам, что в переменной лежит массив (англ. array), в котором находится 0 значений.

Чтобы объявить массив с данными, просто перечислите значения в квадратных скобках:

Создание массивов с помощью квадратных скобок работает начиная с версии PHP 5.4. До этого использовался более громоздкий синтаксис:

Ключи и значения массива

Массив состоит из ключей (индексов) и соответствующих им значений. Это можно представить как таблицу:

КлючЗначение
0Samsung
1Apple
2Nokia

У каждого значения есть свой ключ. В массиве не может быть несколько одинаковых ключей.

Вернёмся к предыдущему примеру и посмотрим, что лежит в массиве:

Результат в браузере:

Когда мы создаём массив без указания ключей, PHP генерирует их автоматически в виде чисел, начиная с 0.

Указание ключей происходит с помощью конструкции => :

Простые и ассоциативные массивы

Когда мы создаём массив с числовыми ключами, такой массив называется простым или числовым.

Вывод массива

Вывод элементов массива выглядит следующим образом:

Однако обе функции выводят информацию на одной строке, что в случае с массивами превращается в кашу. Чтобы этого не происходило, используйте тег ‘;

Результат в браузере:

Также вывести содержимое массива можно с помощью цикла foreach:

Подробней работу цикла foreach мы разберём в отдельном уроке.

Добавление и удаление элементов

Добавление новых элементов в массив выглядит следующим образом:

Но если название ключа не играет роли, его можно опустить:

Удалить элемент массива можно с помощью функции unset() :

Двумерные и многомерные массивы

В качестве значения массива мы можем передать ещё один массив:

Обратиться к элементу многомерного массива можно так:

Теперь мы можем хранить в одном массиве целую базу товаров:

Или альтернативный вариант:

Задача 1

Задача 2

2. Создайте подмассив streets с любыми случайными улицами. Каждая улица должна иметь имя (name) и количество домов (buildings_count), а также подмассив из номеров домов (old_buildings), подлежащих сносу.

Источник

array

(PHP 4, PHP 5, PHP 7, PHP 8)

array — Создаёт массив

Описание

Создаёт массив. Подробнее о массивах читайте в разделе Массивы.

Список параметров

Наличие завершающей запятой после последнего элемента массива, несмотря на некоторую необычность, является корректным синтаксисом.

Возвращаемые значения

Примеры

Последующие примеры демонстрируют создание двухмерного массива, определение ключей ассоциативных массивов и способ генерации числовых индексов для обычных массивов, если нумерация начинается с произвольного числа.

Пример #1 Пример использования array()

Пример #2 Автоматическая индексация с помощью array()

Результат выполнения данного примера:

Этот пример создаёт массив, нумерация которого начинается с 1.

Результат выполнения данного примера:

Как и в Perl, вы имеете доступ к значениям массива внутри двойных кавычек. Однако в PHP нужно заключить ваш массив в фигурные скобки.

Пример #4 Доступ к массиву внутри двойных кавычек

Примечания

Смотрите также

User Contributed Notes 38 notes

As of PHP 5.4.x you can now use ‘short syntax arrays’ which eliminates the need of this function.

So, for example, I needed to render a list of states/provinces for various countries in a select field, and I wanted to use each country name as an label. So, with this function, if only a single array is passed to the function (i.e. «arrayToSelect($stateList)») then it will simply spit out a bunch of » » elements. On the other hand, if two arrays are passed to it, the second array becomes a «key» for translating the first array.

Here’s a further example:

$countryList = array(
‘CA’ => ‘Canada’,
‘US’ => ‘United States’);

$stateList[‘CA’] = array(
‘AB’ => ‘Alberta’,
‘BC’ => ‘British Columbia’,
‘AB’ => ‘Alberta’,
‘BC’ => ‘British Columbia’,
‘MB’ => ‘Manitoba’,
‘NB’ => ‘New Brunswick’,
‘NL’ => ‘Newfoundland/Labrador’,
‘NS’ => ‘Nova Scotia’,
‘NT’ => ‘Northwest Territories’,
‘NU’ => ‘Nunavut’,
‘ON’ => ‘Ontario’,
‘PE’ => ‘Prince Edward Island’,
‘QC’ => ‘Quebec’,
‘SK’ => ‘Saskatchewan’,
‘YT’ => ‘Yukon’);

$stateList[‘US’] = array(
‘AL’ => ‘Alabama’,
‘AK’ => ‘Alaska’,
‘AZ’ => ‘Arizona’,
‘AR’ => ‘Arkansas’,
‘CA’ => ‘California’,
‘CO’ => ‘Colorado’,
‘CT’ => ‘Connecticut’,
‘DE’ => ‘Delaware’,
‘DC’ => ‘District of Columbia’,
‘FL’ => ‘Florida’,
‘GA’ => ‘Georgia’,
‘HI’ => ‘Hawaii’,
‘ID’ => ‘Idaho’,
‘IL’ => ‘Illinois’,
‘IN’ => ‘Indiana’,
‘IA’ => ‘Iowa’,
‘KS’ => ‘Kansas’,
‘KY’ => ‘Kentucky’,
‘LA’ => ‘Louisiana’,
‘ME’ => ‘Maine’,
‘MD’ => ‘Maryland’,
‘MA’ => ‘Massachusetts’,
‘MI’ => ‘Michigan’,
‘MN’ => ‘Minnesota’,
‘MS’ => ‘Mississippi’,
‘MO’ => ‘Missouri’,
‘MT’ => ‘Montana’,
‘NE’ => ‘Nebraska’,
‘NV’ => ‘Nevada’,
‘NH’ => ‘New Hampshire’,
‘NJ’ => ‘New Jersey’,
‘NM’ => ‘New Mexico’,
‘NY’ => ‘New York’,
‘NC’ => ‘North Carolina’,
‘ND’ => ‘North Dakota’,
‘OH’ => ‘Ohio’,
‘OK’ => ‘Oklahoma’,
‘OR’ => ‘Oregon’,
‘PA’ => ‘Pennsylvania’,
‘RI’ => ‘Rhode Island’,
‘SC’ => ‘South Carolina’,
‘SD’ => ‘South Dakota’,
‘TN’ => ‘Tennessee’,
‘TX’ => ‘Texas’,
‘UT’ => ‘Utah’,
‘VT’ => ‘Vermont’,
‘VA’ => ‘Virginia’,
‘WA’ => ‘Washington’,
‘WV’ => ‘West Virginia’,
‘WI’ => ‘Wisconsin’,
‘WY’ => ‘Wyoming’);

Источник

array_search

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

array_search — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае успешного выполнения

Описание

Список параметров

Если needle является строкой, сравнение происходит с учётом регистра.

Возвращаемые значения

Примеры

Пример #1 Пример использования array_search()

Смотрите также

User Contributed Notes 44 notes

in (PHP 5 >= 5.5.0) you don’t have to write your own function to search through a multi dimensional array

$userdb=Array
(
(0) => Array
(
(uid) => ‘100’,
(name) => ‘Sandra Shush’,
(url) => ‘urlof100’
),

(1) => Array
(
(uid) => ‘5465’,
(name) => ‘Stefanie Mcmohn’,
(pic_square) => ‘urlof100’
),

(2) => Array
(
(uid) => ‘40489’,
(name) => ‘Michael’,
(pic_square) => ‘urlof40489’
)
);

simply u can use this

$key = array_search(40489, array_column($userdb, ‘uid’));

About searcing in multi-dimentional arrays; two notes on «xfoxawy at gmail dot com»;

It perfectly searches through multi-dimentional arrays combined with array_column() (min php 5.5.0) but it may not return the values you’d expect.

Secondly, if your array is big, I would recommend you to first assign a new variable so that it wouldn’t call array_column() for each element it searches. For a better performance, you could do;

It’s what the document stated «may also return a non-Boolean value which evaluates to FALSE.»

the recursive function by tony have a small bug. it failes when a key is 0

here is the corrected version of this helpful function:

If you are using the result of array_search in a condition statement, make sure you use the === operator instead of == to test whether or not it found a match. Otherwise, searching through an array with numeric indicies will result in index 0 always getting evaluated as false/null. This nuance cost me a lot of time and sanity, so I hope this helps someone. In case you don’t know what I’m talking about, here’s an example:

hallo every body This function matches two arrays like
search an array like another or not array_match which can match

for searching case insensitive better this:

About searcing in multi-dimentional arrays;
note on «xfoxawy at gmail dot com» and turabgarip at gmail dot com;

$xx = array_column($array, ‘NAME’, ‘ID’);
will produce an array like :
$xx = [
[ID_val] => NAME_val
[ID_val] => NAME_val
]

$yy = array_search(‘tesxt’, array_column($array, ‘NAME’, ‘ID’));
will output expected ID;

To expand on previous comments, here are some examples of
where using array_search within an IF statement can go
wrong when you want to use the array key thats returned.

Take the following two arrays you wish to search:

I was going to complain bitterly about array_search() using zero-based indexes, but then I realized I should be using in_array() instead.

The essence is this: if you really want to know the location of an element in an array, then use array_search, else if you only want to know whether that element exists, then use in_array()

Be careful when search for indexes from array_keys() if you have a mixed associative array it will return both strings and integers resulting in comparison errors

/* The above prints this, as you can see we have mixed keys
array(3) <
[0]=>
int(0)
[1]=>
string(3) «car»
[2]=>
int(1)
>
*/

hey i have a easy multidimensional array search function

Despite PHP’s amazing assortment of array functions and juggling maneuvers, I found myself needing a way to get the FULL array key mapping to a specific value. This function does that, and returns an array of the appropriate keys to get to said (first) value occurrence.

But again, with the above solution, PHP again falls short on how to dynamically access a specific element’s value within the nested array. For that, I wrote a 2nd function to pull the value that was mapped above.

I needed a way to return the value of a single specific key, thus:

Better solution of multidimensional searching.

FYI, remember that strict mode is something that might save you hours.

one thing to be very aware of is that array_search() will fail if the needle is a string and the array itself contains values that are mixture of numbers and strings. (or even a string that looks like a number)

The problem is that unless you specify «strict» the match is done using == and in that case any string will match a numeric value of zero which is not what you want.

also, php can lookup an index pretty darn fast. for many scenarios, it is practical to maintain multiple arrays, one in which the index of the array is the search key and the normal array that contains the data.

//very fast lookup, this beats any other kind of search

I had an array of arrays and needed to find the key of an element by comparing actual reference.
Beware that even with strict equality (===) php will equate arrays via their elements recursively, not by a simple internal pointer check as with class objects. The === can be slow for massive arrays and also crash if they contain circular references.

This function performs reference sniffing in order to return the key for an element that is exactly a reference of needle.

A simple recursive array_search function :

A variation of previous searches that returns an array of keys that match the given value:

I needed a function, that returns a value by specifying a keymap to the searched value in a multidimensional array and came up with this.

My function get_key_in_array() needed some improvement:

An implementation of a search function that uses a callback, to allow searching for objects of arbitrary complexity:

For instance, if you have an array of objects with an id property, you could search for the object with a specific id like this:

For a more complex example, this function takes an array of key/value pairs and returns the key for the first item in the array that has all those properties with the same values.

The final step is a function that returns the item, rather than its key, or null if no match found:

Источник

Как можно вывести индексы обычного массива?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вывести максимальный элемент массива и его индексы
Вывести на печать максимальный элемент массива А(5,5) и его индексы.

Вывести индексы элементов массива, кратных двум
Такая проблема недавно начал изучать PHP и столкнулся с проблемой как вывести индексы элементов.

Вывести на печать минимальный элемент массива FR (4,6) и его индексы
Лаба Web-программирование Вывести на печать минимальный элемент массива FR (4,6) и его индексы.

Можно ли использовать итератор для обычного массива?
Можно ли использовать итератор для обычного массива? Если да, то как его объявить?

Я столкнулся с таким вопросом.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как вывести из функции индексы элементов массива
Здравствуйте, господа хорошие. Подскажите, пожалуйста, как можно организовать вывод из функции.

Как узнать индекс элемента массива php. Смотреть фото Как узнать индекс элемента массива php. Смотреть картинку Как узнать индекс элемента массива php. Картинка про Как узнать индекс элемента массива php. Фото Как узнать индекс элемента массива phpКак вывести индексы исходного массива по отсортированному
Есть исходный массив (рандомно выводит трехзначные числа). После провожу сортировку (создаю новый.

Как вывести индексы отрицательных чисел из исходного массива в отдельный
Вот, что пока есть, проблема в заголовке Option Base 1 Sub lab_6() Dim c(10) As Double Dim.

Как вывести индексы элементов массива, которые у них были до сортировки?
Как вывести индексы элементов массива, которые у них были до сортировки?

Источник

PHP: Числовые массивы

Массив представляет собой коллекцию значений, которая хранится в одной переменной. Массивы в PHP состоят из элементов, каждый из которых представлен парой ключ/значение.

Создание числового массива

Он возвращает массив, содержащий столько элементов, сколько значений ему было передано. Возвращаемый массив обычно присваивают переменной, которая будет служить именем для массива.

После создания массива, мы можем обращаться к его элементам с помощью синтаксиса имя_массива[индекс] :

По умолчанию, первый элемент массива имеет индекс 0, второй имеет индекс 1, и так далее. В результате, 3 элемента нашего массива имеют индексы в диапазон от 0 до 2.

Мы рассмотрели два способа создания числового массива с автоматической установкой индексов для значений: с помощью конструктора и квадратных скобок, но оба эти способа позволяют также явно указывать индексы для значений. Чтобы явно указать индекс для значения используется следующий синтаксис: число => значение :

Обратите внимание, что индексы не обязательно указывать для всех значений, можно явно указать индекс только для некоторых значений:

В этом случае, индекс последующего элемента, устанавливаемый по умолчанию, всегда устанавливается на единицу больше, чем самый большой индекс у какого-нибудь предшествующего элемента. Поэтому число 10 будет под индексом 16, а не 2.

При явном указании индексов стоит быть особенно внимательными, так как при большом количестве элементов в массиве можно допустить ошибку, указав индекс, который уже существует в массиве, в этом случае значение, которое указанно позже перезапишет значение, которое расположено под тем же индексом:

В этом коде значение 10, находящееся под индексом 2, будет перезаписано на значение 7.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *