Comprobando si existe valor de matriz en una matriz multidimensional de PHP

Tengo la siguiente matriz multidimensional:

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

Actualmente estoy usando un bucle foreach para extraer los valores de la matriz:

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

Pero me preguntaba cómo veo si un valor dentro de la matriz ya existe.

Entonces, por ejemplo, si quería agregar otro conjunto a la matriz, pero la identificación es 1 (por lo que la persona es Jonás) y su puntaje es 5, ¿puedo agregar 5 al valor de matriz ya creado en id 0 lugar de crear un nuevo valor de matriz?

Entonces, después de que el ciclo haya terminado, la matriz se verá así:

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

¿Qué hay de hacer un bucle sobre su matriz, verificando cada elemento si su id es la que está buscando?

 $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 } 

primero puede almacenar la matriz con un índice igual al ID. por ejemplo :

  $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; } 

Aunque la pregunta es respondida, quería publicar mi respuesta. Podría ser útil para los futuros espectadores. Puede crear una nueva matriz a partir de esta matriz con filtro y desde allí puede verificar si el valor existe en esa matriz o no. Puedes seguir el código a continuación. Muestra

 $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);