2012-03-28 3 views
0

J'ai deux tableaux.idée de manipulation de matrice

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

et le second tableau est

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' 
    ) 

) 

Maintenant, je veux voir ce que les voitures en stock ou non basé sur le premier et le second tableau. Donc pour Cobalt, il me retournera en stock, où comme pour Explorer, il me renverra en rupture de stock. Et pour Mazda il peut retouner "Do not carry" Là où je suis confus est de savoir ou non de faire exploser le tableau [1] par slash "/" et de le regarder ensuite. Existe-t-il un autre moyen plus facile/plus rapide de le faire. merci

+0

Qu'avez-vous essayé? De même, comment Explorer doit-il retourner "en rupture de stock" lorsqu'il y a deux instances indiquant à la fois "rupture de stock" et "stock"? – Josh

+0

Avez-vous * besoin * d'avoir le deuxième tableau comme vous l'avez? Est-ce une option d'avoir un modèle de données différent pour la disponibilité de voiture, que ce que vous montrez là? À quelle fréquence recherchez-vous la disponibilité de la voiture et à quelle fréquence vous «rechargez» l'information de la deuxième rangée? – Irfy

+0

problème d'explorateur fixe et édité – Autolycus

Répondre

2

Essayez ceci:

$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); 

Ce imprimera:

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

Peut-être

$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); 

ceci imprimer In Stock, si une voiture n'a pas été trouvé, il retourne tout simplement rien.

+0

oui et ajouter tableau: D – Dion

+0

qu'est ce que $ voiture? un tableau? – Autolycus

+0

qu'est-ce que secondry? – Autolycus

Questions connexes