[英]How to sum values from associative array if there is the same key in php laravel
[英]Adding same key and values to associative array php
我有这样的数组
Array
(
[0] => Array
(
[catid] => 1
[percentage] => 4
[name] => Access Control
)
[1] => Array
(
[catid] => 7
[percentage] => 1
[name] => Audio Video
)
[2] => Array
(
[catid] => 5
[percentage] => 1
[name] => Home Automation
)
)
寿这阵我想补充一对catid
, percentage
和name
作为下一个键如另一个数组:
[3] => Array
(
[catid] => 7
[percentage] => 0
[name] => 'some name'
)
这是我的代码
//another array
$id=array('1','2',....n);
//$data is my original array
foreach($id as $key=>$value){
$data[]['catid']=$value;
$data['percentage'][]='0';
$data['name'][]='Some name';
}
但这会产生错误的输出。
//another array
$id=array('1','2',....n);
$i = count($data);
//$data is my original array
foreach($id as $key=>$value){
$data[$i]['catid']=$value;
$data[$i]['percentage']='0';
$data[$i]['name']='Some name';
$i++;
}
您唯一需要做的是:
$yourArray[] = [
'catid' => 7,
'percentage' => 0,
'name' => 'some name'
];
您正在建立错误的阵列:
这会将NEW元素推入主$data
数组,然后将catid / $ value的键/值分配给该新元素:
$data[]['catid']=$value;
然后,创建一个新的顶级percentage
,并在其中添加零,然后同名输入:
$data['percentage'][]='0';
$data['name'][]='Some name';'
您不能像这样构建多键数组。 您需要构建一个临时数组,然后将整个内容推入主数组:
$temp = array();
$temp['catid'] = $value;
$temp['percentage'] = 0;
$temp['name'] = 'Some name';
$data[] = $temp;
或简写为:
$data[] = array('catid' => $value, 'percentage' => 0, 'name' = 'Somename');
您可以使用array_push
$a1 = array(array('catid' => '1', 'percentage' => '4', 'name' => 'Access Control'));
$a2 = array('catid' => '7', 'percentage' => '0', 'name' => 'Some Name');
array_push($a1 ,$a2);
print_r($a1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.