我有两个阵列:
array product_item('1','22','35');
array product_subitems(22 => array('35'=>'1','42'=>'15'), 35 => array('60'=>'10','69'=>'20'))
如何获取数组product_subitems'值基于我的数组product_items?
我尝试过类似的事情:
foreach($product_keys as $p_key) {
foreach($product_items as $item_key) {
echo product_keys[$p_key][$item_key];
}
}
但这是一个非常糟糕的代码而且无法正常工作。
我只想根据第一个数组的键从第二个数组中获取数组键和值。
答案 0 :(得分:1)
只需遍历第一个并使用每个值从第二个值中检索正确的数组。像这样:
foreach ($product_item as $pi){
print_r($product_subitems[$pi]);
}
演示1:http://codepad.org/LDZjHjQH
您可以根据需要修改此项。例如,您可能想要这样的东西:
foreach ($product_item as $pi){
echo "Product item " . $pi . ": ";
if (isset($product_subitems[$pi])) {
foreach ($product_subitems[$pi] as $spi) {
echo $spi . " ";
}
}
}
答案 1 :(得分:0)
如果我理解正确,你想要的是子数组项中的键吗?
所以,基于此,你需要这样的东西:
foreach($product_items as $i) {
if(isset($product_subitems[$i])) {
foreach($product_subitems as $item) {
foreach($item as $key => $value) {
echo "{$key} = {$value} \n";
}
}
}
}
如果您不关心product_subitems
'键,然后您可以使用它来获取值:
foreach($product_items as $i) {
if(isset($product_subitems[$i])) {
$values = array_values($product_subitems[$i]);
print_r($values);
}
}
答案 2 :(得分:0)
$product_item = array('1','22','35');
$product_subitems = array(22 => array('35'=>'1','42'=>'15'), 35 => array('60'=>'10','69'=>'20'));
foreach($product_item as $item)
if(isset($product_subitems[$item]))
print_r($product_subitems[$item]);