2012-03-28 64 views
0

我有两个数组。数组操作的想法

$Array1 = array("Maza", "Nissan","Tacoma","Cobalt","Explorer"); 

和第二阵列是

array(
    (int) 0 => array(
     (int) 0 => 'In Stock', 
     (int) 1 => 'Cars' 
    ), 
    (int) 1 => array(
     (int) 0 => 'In stock', 
     (int) 1 => 'Cars/Toyota/Tacoma' 
    ), 
    (int) 2 => array(
     (int) 0 => 'Out of Stock', 
     (int) 1 => 'Cars/Toyota/Celica' 
    ), 
    (int) 3 => array(
     (int) 0 => 'In Stock', 
     (int) 1 => 'Cars/Ford/Fusion' 
    ), 
    (int) 4 => array(
     (int) 0 => 'Out of Stock', 
     (int) 1 => 'Cars/Ford/Explorer' 
    ), 
    (int) 5 => array(
     (int) 0 => 'In Stock', 
     (int) 1 => 'Cars/Chevy/Cobalt' 
    ), 
    (int) 6 => array(
     (int) 0 => 'In Stock', 
     (int) 1 => 'Cars/Nissan' 
    ) 

) 

现在我想看到基于第一和第二阵列上什么车库存与否。所以对于Cobalt来说,它会让我回到In Stock,就像Explorer一样,它会让我断货。对于马自达来说,它可以重新调整“不要携带”。在那里,我很困惑的是不管用斜线“/”来爆炸数组[1],然后查看它。有没有更简单/更快的方法来做到这一点。感谢

+0

你尝试过什么?另外,如果资源管理器有两个实例表示“缺货”和“库存”,应如何返回“缺货”? – Josh 2012-03-28 19:55:31

+0

你*有*拥有第二个数组的方式吗?对于汽车可用性而言,是否有一种不同的数据模型可供选择?您多久查看一次汽车的可用性,以及您多久一次“重新装载”第二阵列的信息? – Irfy 2012-03-28 19:59:21

+0

固定资源管理器问题并编辑它 – Autolycus 2012-03-28 20:01:03

回答

2

试试这个:

$cars = array("Maza", "Nissan","Tacoma","Cobalt","Explorer"); 
$stocks=array(
    (int) 0 => array(
     (int) 0 => 'In Stock', 
     (int) 1 => 'Cars' 
    ), 
    (int) 1 => array(
     (int) 0 => 'In stock', 
     (int) 1 => 'Cars/Toyota/Tacoma' 
    ), 
    (int) 2 => array(
     (int) 0 => 'Out of Stock', 
     (int) 1 => 'Cars/Toyota/Celica' 
    ), 
    (int) 3 => array(
     (int) 0 => 'In Stock', 
     (int) 1 => 'Cars/Ford/Fusion' 
    ), 
    (int) 4 => array(
     (int) 0 => 'Out of Stock', 
     (int) 1 => 'Cars/Ford/Explorer' 
    ), 
    (int) 5 => array(
     (int) 0 => 'In Stock', 
     (int) 1 => 'Cars/Chevy/Cobalt' 
    ), 
    (int) 6 => array(
     (int) 0 => 'In Stock', 
     (int) 1 => 'Cars/Nissan' 
    ) 

); 
$output=array(); 
foreach ($cars as $car) { 
    foreach ($stocks as $stock) { 
    if(in_array($car, explode('/', $stock[1]))){ 
     $output[$car]=$stock[0]; 
     break; 
     }else{$output[$car]='Do not care';} 
} 
} 
echo '<pre>'; 
print_r($output); 

这将打印:

Array 
(
    [Maza] => Do not care 
    [Nissan] => In Stock 
    [Tacoma] => In stock 
    [Cobalt] => In Stock 
    [Explorer] => Out of Stock 
) 
2

也许

$Array1 = array("Maza", "Nissan","Tacoma","Cobalt","Explorer"); 
$secondarray = array(
    array('In Stock', 'Cars'), 
    array('In stock', 'Cars/Toyota/Tacoma'), 
    array('Out of Stock', 'Cars/Toyota/Celica'), 
    array('In Stock', 'Cars/Ford/Explorer'), 
    array('Out of Stock', 'Cars/Ford/Explorer'), 
    array('In Stock', 'Cars/Chevy/Cobalt'), 
    array('In Stock', 'Cars/Nissan')); 
function findcar($car, $secondarray) { 
    for($c = 0; $c <= count($secondarray); $c++) { 
     if(strpos(strtolower($secondarray[$c][1]), strtolower($car)) > 0) { 
       return $secondarray[$c][0]; 
     } 
    } 
} 

echo findcar($Array1[1], $secondarray); 

这将打印出In Stock,如果汽车没有被发现它只是没有返回。

+0

是和添加数组:D – Dion 2012-03-28 19:57:51

+0

什么是$汽车?数组? – Autolycus 2012-03-28 20:01:48

+0

什么是次要的? – Autolycus 2012-03-28 20:01:56