我想知道如何解决这个问题。我有3个(三个)数组,它们在“数据”键中包含嵌套值,如下所示:
array:3 [
0 => array:3 [
"status" => "Terkirim"
"warna" => "lightgreen"
"data" => array:12 [
0 => 0
1 => 0
2 => 0
3 => 0
4 => 0
5 => 0
6 => 3
7 => 0
8 => 0
9 => 0
10 => 0
11 => 0
]
]
1 => array:3 [
"status" => "Selesai"
"warna" => "lightblue"
"data" => array:12 [
0 => 0
1 => 0
2 => 0
3 => 0
4 => 0
5 => 0
6 => 3
7 => 0
8 => 0
9 => 0
10 => 0
11 => 0
]
]
2 => array:3 [
"status" => "Selesai"
"warna" => "lightblue"
"data" => array:12 [
0 => 0
1 => 0
2 => 0
3 => 0
4 => 0
5 => 0
6 => 0
7 => 1
8 => 0
9 => 0
10 => 0
11 => 0
]
]
]
我的问题是,即使“状态”相同,如何联接“数据”呢?或者如果该值已经存在于同一索引键上,则求和值,这就是我要实现的目标:
array:3 [
0 => array:3 [
"status" => "Terkirim"
"warna" => "lightgreen"
"data" => array:12 [
0 => 0
1 => 0
2 => 0
3 => 0
4 => 0
5 => 0
6 => 3
7 => 0
8 => 0
9 => 0
10 => 0
11 => 0
]
]
1 => array:3 [
"status" => "Selesai"
"warna" => "lightblue"
"data" => array:12 [
0 => 0
1 => 0
2 => 0
3 => 0
4 => 0
5 => 0
6 => 3
7 => 1 <== the joined value
8 => 0
9 => 0
10 => 0
11 => 0
]
]
]
任何帮助将不胜感激...:)
答案 0 :(得分:0)
您可以这样操作:
ERROR: invalid byte sequence for encoding "UTF8": 0x00
答案 1 :(得分:0)
您可以使用array_reduce()
将数组汇总为一个关联数组。使用array_values()
将关联数组转换为简单数组。
$arr = //Your array
$result = array_values(array_reduce($arr, function($c, $v){
if ( !isset( $c[ $v['status'] ] ) ) $c[ $v['status'] ] = $v;
else foreach( $c[ $v['status'] ]['data'] as $key => &$val ) $val += $v['data'][$key];
return $c;
}, array()));
echo "<pre>";
print_r( $result );
echo "</pre>";
这将导致:
Array
(
[0] => Array
(
[status] => Terkirim
[warna] => lightgreen
[data] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 3
[7] => 0
[8] => 0
[9] => 0
[10] => 0
[11] => 0
)
)
[1] => Array
(
[status] => Selesai
[warna] => lightblue
[data] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 3
[7] => 1
[8] => 0
[9] => 0
[10] => 0
[11] => 0
)
)
)