php在多维数组中的特定位置添加一些值


php add some value on specific location in multidimensional array

我有这样的数组

数组([0]=>
数组(
[user_id]=>21
[email]=>momod@modara.com
[品牌]=>阵列([0]=>GOFUEL_W[1]=>GOFUEL _USD_W)
[1]=>
阵列(
[user_id]=>22
[email]=>hemisphere@modara.com
[品牌]=>阵列([0]=>GOFUEL_W))
[2]=>
阵列(
[user_id]=>23
[电子邮件]=>madoka@modara.com
[品牌]=>阵列([0]=>GOFUEL_W[1]=>GOFUEL_USD_W[2]=>GOFUEL_BGD_W))


我想定位user_id 22,并将这个值"GO_FUEL_SGD_W"放在brand上,我该怎么办,所以数组的视图将是这样的

数组([0]=>
数组(
[user_id]=>21
[email]=>momod@modara.com
[品牌]=>阵列([0]=>GOFUEL_W[1]=>GOFUEL _USD_W)
[1]=>
阵列(
[user_id]=>22
[email]=>hemisphere@modara.com
[品牌]=>阵列([0]=>GOFUEL_W=>[1]=>GO_FUEL_SGD_W))
[2]=>
阵列(
[user_id]=>23
[电子邮件]=>madoka@modara.com
[品牌]=>阵列([0]=>GOFUEL_W[1]=>GOFUEL_USD_W[2]=>GOFUEL_BGD_W))

只需使用循环:

foreach($array as &$item)
{
   if(array_key_exists('user_id', $item) && 
      $item['user_id']==22 &&
      array_key_exists('brand', $item) && 
      !in_array('GO_FUEL_SGD_W', $item['brand']))
   {
      $item['brand'][] = 'GO_FUEL_SGD_W';
   }
}

一个简单的foreach循环就可以完成这项工作:

foreach($myarray AS &$subarray) {
    if($subarray['user_id'] == 22) {
        $subarray['brand'][] = "GO_FUEL_SGD_W";
        break;
    }
}

工作示例:http://3v4l.org/8aQMj

您需要遍历数组并查找要搜索的元素。

foreach ($array as &$element) {
    if ($element['user_id'] != 22)
        continue;
    $element['brand'][] = "GO_FUEL_SGD_W";
    break;
}

有了continue;,所有具有$element['user_id'] != 22的元素都将被跳过(因此continue;之后的任何代码都不会应用于它们!)。

此外,由于break;,一旦到达并修改了请求的元素,它将结束循环。

$array= //your array;
foreach($array as $x){
    if($x['user_id']=='22'){
      $x['brand'][]='GO_FUEL_SGD_W';
      break;
    }
}