我有这样的数组
数组([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;
}
}