基于第一个数组的循环PHP数组
我刚刚了解了如何基于另一个数组循环一个数组,但我的问题是,如果第二个数组只是一个对象,那么它就可以正常工作,但我想让它与两个对象一起工作 下面是一个例子,它是如何工作的基于第一个数组的循环PHP数组,php,arrays,Php,Arrays,我刚刚了解了如何基于另一个数组循环一个数组,但我的问题是,如果第二个数组只是一个对象,那么它就可以正常工作,但我想让它与两个对象一起工作 下面是一个例子,它是如何工作的 $shorten = array( 0 => 'ECAR', 1 => 'CCAR', 2 => 'ICAR', 3 => 'SCAR', 4 => 'FCAR', 5 => 'PCAR', ); $data = array( 'Hertz' => arra
$shorten = array(
0 => 'ECAR',
1 => 'CCAR',
2 => 'ICAR',
3 => 'SCAR',
4 => 'FCAR',
5 => 'PCAR',
);
$data = array(
'Hertz' => array(
'ECAR' => '49.21',
'CCAR' => '71.04',
'ICAR' => '89.58',
'SCAR' => '100.00',
)
),
'Avis' => array(
'ECAR' => '412.00',
'CCAR' => '347.00',
'ICAR' => '285.00',
'SCAR' => '224.00',
'FCAR' => '165.00',
'PCAR' => '100.00',
)
),
);
// default array as the base
$shorten = array_combine($shorten, array_fill(0, count($shorten), 'n/a'));
foreach($data as &$array) {
// merge to get set members
$array = array_merge($shorten, $array);
}
unset($array);
print_r($data);
但我想让它和这个一起工作
$shorten = array(
0 => 'ECAR',
1 => 'CCAR',
2 => 'ICAR',
3 => 'SCAR',
4 => 'FCAR',
5 => 'PCAR',
);
$data = array(
'Hertz' => array(
'NYCT01' => array(
'ECAR' => '49.21',
'CCAR' => '71.04',
'ICAR' => '89.58',
'SCAR' => '100.00',
)
),
'Avis' => array(
'NYCT01' => array(
'ECAR' => '412.00',
'CCAR' => '347.00',
'ICAR' => '285.00',
'SCAR' => '224.00',
'FCAR' => '165.00',
'PCAR' => '100.00',
)
),
);
// default array as the base
$shorten = array_combine($shorten, array_fill(0, count($shorten), 'n/a'));
foreach($data as $firstArray) {
foreach($firstArray as &$array){
// merge to get set members
$array = array_merge($shorten, $array);
}
}
unset($array);
print_r($data);
这就是我想要的
Array
(
[Hertz] => Array
(
[ECAR] => 49.21
[CCAR] => 71.04
[ICAR] => 89.58
[SCAR] => 100.00
[FCAR] => n/a
[PCAR] => n/a
)
[Avis] => Array
(
[ECAR] => 412.00
[CCAR] => 347.00
[ICAR] => 285.00
[SCAR] => 224.00
[FCAR] => 165.00
[PCAR] => 100.00
)
)
只需循环查看数据,检查NYCT01数组中是否存在任何车的钥匙,如果设置了值,否则为“n/a”
我的输出:
Array
(
[Hertz] => Array
(
[ECAR] => 49.21
[CCAR] => 71.04
[ICAR] => 89.58
[SCAR] => 100.00
[FCAR] => n/a
[PCAR] => n/a
)
[Avis] => Array
(
[ECAR] => 412.00
[CCAR] => 347.00
[ICAR] => 285.00
[SCAR] => 224.00
[FCAR] => 165.00
[PCAR] => 100.00
)
)
好了,开始工作了这是我想的真正的代码
foreach($data as $company => $nyc){
foreach($nyc as $inner => $s){
foreach($shorten as $car){
if(array_key_exists($car, $nyc[$inner])){
$output[$company][$car] = $nyc[$inner][$car];
}else {
$output[$company][$car] = "n/a";
}
}
}
}
非常感谢你的帮助,马库斯
祝你好运。$data[1][0][0]=412.00;这就是您访问数组中的数组等的方式。如果这是您的意思,是吗?我不太明白你的问题。请检查数组我想要它应该是什么,Thanxi如果你的问题得到回答,请设置,不要编辑标题。这是个好主意,但我的问题是,
$inner
在我的数组中不同,我的意思是它可能是例如NYCT02
或NYCC01
等。然后你也可以通过$nycYes循环你是对的,我正在尝试这样做,我在这里有点挣扎,希望能找到答案。谢谢你,马库斯,我成功了,请查看我输入的答案,没问题!将问题标记为已回答。
foreach($data as $company => $nyc){
foreach($nyc as $inner => $s){
foreach($shorten as $car){
if(array_key_exists($car, $nyc[$inner])){
$output[$company][$car] = $nyc[$inner][$car];
}else {
$output[$company][$car] = "n/a";
}
}
}
}