Est-il possible de comparer deux valeurs de tableau?
Dites :
Array ("Not Available", "Available", "Available", "Available")
Exemple de code:
If (Array1 >= Array2){ echo"Not Available"; } else { echo"Available"; }
Résultat attendu:
Array 1> Array 2> Values: Values: 2 11 36 13 65 11 78 1
5 Réponses :
Si les deux tableaux ont la même longueur, vous pouvez utiliser la boucle for comme ci-dessous,
$temp = []; for($i = 0; $i < count($array1);$i++){ $temp[] = (($array1[$i] >= $array2[$i]) ? 'Not Available': 'Available'); } print_r($temp);
Vous pouvez simplement faire quelque chose de simple comme ceci:
function compareArrays(array $array1, array $array2): array { $itemCount = (count($array1) > count($array2)) ? $array1 : $array2; $returnArray = []; for($i = 0; $i < count($itemCount); $i++) { $returnArray[] = ($array1 >= $array2) ? 'Avalible' : 'Not Avalible'; } return $returnArray; }
La raison principale est que nous ne savons pas d'après votre message si les tableaux seront toujours de la même taille, vous devez donc les comparer pour obtenir le plus grand des deux, utilisez-le pour la boucle. Après cela, ce ne sont que de simples comparaisons.
Votre génération de $ itemCount
est un peu longue (IMHO) - vous pouvez simplement utiliser $ itemCount = max (count ($ array1), count ($ array2));
Oui, il est possible d'utiliser une simple boucle for comme ci-dessous:
for($i = 0; $i < count($array1); $i++){ if($array1[$i] >= $array2[$i]){ echo "Available" }else{ echo "Not available"; } }
Remarque Ici, les deux tableaux doivent être de même taille.
Si array1 et array2 ont toujours la même taille, alors solution simple
$data = []; foreach($array1 as $key => $value) { if (!isset($array2[$key])) { // for safety check for second array index bound break; } $data[] = $value >= $array2[$key] ? 'Not Available' : 'Available'; } return $data;
Vous pouvez utiliser une fonction de rappel avec la fonction array_map
comme celle-ci.
<?php function getResult($first, $second) { return $first > $second ? 'Available' : 'Not Available'; } $firstArray = [1,4,5,6]; $secondArray = [2,3,1,9]; $data = array_map('getResult', $firstArray, $secondArray); echo '<pre>',print_r($data),'<pre>'; ?>
Vous pouvez également personnaliser la logique à l'intérieur de la fonction pour une logique plus complexe. Vous pouvez ajouter n'importe quel nombre de tableaux selon vos besoins. J'espère que vous comprenez.
Pouvez-vous expliquer plus? Que voulez-vous dire par
comparer
ici?Comparez les valeurs de Array 1 [0] et Array 2 [0] et donne le résultat de Not available ou Available et ainsi de suite. C'est possible ?
L'ordre est-il important?
Qu'entendez-vous par «disponible» ou «non disponible»? Quel est le lien avec Laravel de quelque manière que ce soit?