我有两个数组:
array product_item('1','22','35');
array product_subitems(22 => array('35'=>'1','42'=>'15'), 35 => array('60'=>'10','69'=>'20'))
如何根据我的数组product_items获取数组product_subitems的值?
我试过类似的东西:
foreach($product_keys as $p_key) {
foreach($product_items as $item_key) {
echo product_keys[$p_key][$item_key];
}
}
但这是一个非常糟糕的代码,不起作用。
我只想根据第一个数组的键从第二个数组中获取数组键和值。
只需循环第一个,并使用每个值从第二个中检索正确的数组。类似这样的东西:
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 . " ";
}
}
}
演示2:http://codepad.org/eTe2ga3d
如果我理解正确,您想要的是子数组项中的键,对吗?
因此,基于此,你会想要这样的东西:
foreach($product_items as $i) {
if(isset($product_subitems[$i])) {
foreach($product_subitems as $item) {
foreach($item as $key => $value) {
echo "{$key} = {$value} 'n";
}
}
}
}
Example
如果你不关心product_subitems
的密钥,那么你可以使用它来获得值:
foreach($product_items as $i) {
if(isset($product_subitems[$i])) {
$values = array_values($product_subitems[$i]);
print_r($values);
}
}
Example
$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]);