Проверка наличия значения массива в многомерном массиве PHP

У меня есть следующий многомерный массив:

Array ( [0] => Array ( [id] => 1 [name] => Jonah [points] => 27 ) [1] => Array ( [id] => 2 [name] => Mark [points] => 34 ) ) 

В настоящее время я использую цикл foreach для извлечения значений из массива:

 foreach ($result as $key => $sub) { ... } 

Но мне было интересно, как узнать, существует ли значение внутри массива.

Так, например, если бы я хотел добавить еще один набор в массив, но id равен 1 (так что человек – Jonah), а их оценка равна 5, могу ли я добавить 5 к уже созданному значению массива в id 0 вместо создания новое значение массива?

Итак, после того, как цикл завершится, массив будет выглядеть так:

 Array ( [0] => Array ( [id] => 1 [name] => Jonah [points] => 32 ) [1] => Array ( [id] => 2 [name] => Mark [points] => 34 ) ) 

Как насчет циклического перемещения по вашему массиву, проверяя каждый элемент, если он является id , который вы ищете?

 $found = false; foreach ($your_array as $key => $data) { if ($data['id'] == $the_id_youre_lloking_for) { // The item has been found => add the new points to the existing ones $data['points'] += $the_number_of_points; $found = true; break; // no need to loop anymore, as we have found the item => exit the loop } } if ($found === false) { // The id you were looking for has not been found, // which means the corresponding item is not already present in your array // => Add a new item to the array } 

вы можете сначала сохранить массив с индексом, равным id. например :

  $arr =Array ( [0] => Array ( [id] => 1 [name] => Jonah [points] => 27 ) [1] => Array ( [id] => 2 [name] => Mark [points] => 34 ) ); $new = array(); foreach($arr as $value){ $new[$value['id']] = $value; } //So now you can check the array $new for if the key exists already if(array_key_exists(1, $new)){ $new[1]['points'] = 32; } 

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

 $arr = array( 0 =>array( "id"=> 1, "name"=> "Bangladesh", "action"=> "27" ), 1 =>array( "id"=> 2, "name"=> "Entertainment", "action"=> "34" ) ); $new = array(); foreach($arr as $value){ $new[$value['id']] = $value; } if(array_key_exists(1, $new)){ echo $new[1]['id']; } else { echo "aaa"; } //print_r($new);