Есть ассоциативный массив нужно выбрать конкретные значения по совпадению и хотелось бы сделать все это без цикла, так как массивы могут быть большие, подскажите как это можно реализовать? К примеру:
0 =>[
'user'=> 'ivan'
'amount' => 50
'date' => '2019'
],
1=> [
'user'=> 'dima'
'amount' => 10
'date' => '2019'
],
2=> [
'user'=> 'ivan'
'amount' => 11
'date' => '2019'
],
мне нужно оставить к примеру ivan
и чтобы на выходе получить такое:
0 =>[
'user'=> 'ivan'
'amount' => 50
'date' => '2019'
],
1=> [
'user'=> 'ivan'
'amount' => 11
'date' => '2019'
],
Следует понимать, что если цикл не прописан явно в скрипте, то это совсем не означает, что цикла не будет вообще. Следует, также, понимать, что перебрать массив без цикла в принципе невозможно. То есть, цикл будет, независимо от пожеланий автора вопроса.
Также следует понимать, что в погоне за оптимизацией можно получить результат, прямо противоположный ожидаемому. Что мы и имеем в данном случае - в попытке избежать одного цикла автор вопроса в результате в одном из ответов получил два: один цикл чтобы перебрать исходный массив, и второй - чтобы перебрать результирующий.
Мораль: задача поиска в массиве без цикла не имеет смысла.
сделать все это без цикла
Можно отфильтровать массив с помощью array_filter(), и сбросить ключи с помощью array_values():
$arr = [
[
'user'=> 'ivan',
'amount' => 50,
'date' => '2019'
],
[
'user'=> 'dima',
'amount' => 10,
'date' => '2019'
],
[
'user'=> 'ivan',
'amount' => 11,
'date' => '2019'
]
];
$arr = array_values(array_filter($arr, function($a){
return in_array('ivan', $a);
}));
print_r($arr);
Результат:
Array
(
[0] => Array
(
[user] => ivan
[amount] => 50
[date] => 2019
)
[1] => Array
(
[user] => ivan
[amount] => 11
[date] => 2019
)
)
спасибо , немного доработал , как мне кажется без доп функции in_arr будет быстрее
$search = 'ivan';
$res = array_filter($arr, function($v) use ($search){
return $v['user'] == $search;
});
Есть массив с данными, нужно перезаписать его, что бы получить массив с данными для каждого товараНо, еще нужно записать несколько одинаковых...
Возможно ли реализовать авторизацию на PHP используя имеющиеся сертификаты? Есть данные сертификатов ( серийные номера срок действия итд...