请帮我一个代码。我在它的数组52,55,54中有这个多维数组 - 数组52有2个数组显示重复的funcionario_id键,其他数组各有一个,因为输出没有重复的键。
注意:这个多维是动态的,这个例子显示了4个数组,但可以更多。
现在我需要显示pedido_data_emitir的值,尊重数组的分组如下
需要回显的数组:
$new_array = Array(
[52] => Array
(
[0] => stdClass Object
(
[pedido_id] => 54
[cliente_id] => 5
[funcionario_id] => 52
[pedido_forma_de_pagto_id] => 2
[pedido_data_emitir] => 2015-12-16 13:07:19
)
[1] => stdClass Object
(
[pedido_id] => 52
[cliente_id] => 5
[funcionario_id] => 52
[pedido_forma_de_pagto_id] => 2
[pedido_data_emitir] => 2015-12-16 13:07:32
)
)
[55] => Array
(
[0] => stdClass Object
(
[pedido_id] => 51
[cliente_id] => 7
[funcionario_id] => 55
[pedido_forma_de_pagto_id] => 2
[pedido_data_emitir] => 2015-12-16 13:07:28
)
)
[54] => Array
(
[0] => stdClass Object
(
[pedido_id] => 53
[cliente_id] => 6
[funcionario_id] => 54
[pedido_forma_de_pagto_id] => 2
[pedido_data_emitir] => 2015-12-16 13:07:36
)
)
)
我需要的是这样的回声:
array 52 =>pedido_data_emitir,pedido_data_emitir
<hr/>
array 54 =>pedido_data_emitir
<hr/>
array 55 =>pedido_data_emitir
<hr/>
with normal foreach its get wrong echo
array 52 =>pedido_data_emitir
<hr/>
array 52 =>pedido_data_emitir
<hr/>
array 54 =>pedido_data_emitir
<hr/>
array 55 =>pedido_data_emitir
<hr/>
答案 0 :(得分:2)
foreach($new_array as $key => $element) {
echo "array $key => "
. implode(", ", array_map(
function ($o) { return $o->pedido_data_emitir; }, $element))
. "<hr/>";
}
输出:
array 52 => 2015-12-16 13:07:19, 2015-12-16 13:07:32
<hr/>
array 55 => 2015-12-16 13:07:28
<hr/>
array 54 => 2015-12-16 13:07:36
<hr/>
答案 1 :(得分:1)
你需要在外循环中做一个嵌套循环,即
foreach($new_array as $key => $values){
// will output 'array 52 => '
echo "array {$key} => ";
// create var to hold the pedido_data_emitir string
$pedido_data_emitir = "";
foreach($values as $value){
// add each pedido_data_emitir value to the string
$pedido_data_emitir .= $value['pedido_data_emitir'].", ";
}
// remove the trailing ', '
echo rtrim($pedido_data_emitir,", ");
echo "<hr/>";
}
答案 2 :(得分:0)
我不知道我是否理解你。无论如何,使用嵌套的foreach
:
$tmp_array = array();
foreach($new_array as $index => $array) {
foreach($array as $object) {
array_push($tmp_array, $object->pedido_data_emitir);
}
$new_array[$index] = implode(', ', $tmp_array);
$tmp_array = array();
}
之后,$new_array
拥有您想要的内容
答案 3 :(得分:0)
Sean谢谢你,我刚刚添加了这段代码,将数组从stdClass更改为普通数组,并且工作正常。
$array_modi = json_decode(json_encode($new_array), true);