J'ai un fichier appelé parts.json qui est un fichier JSON contenant un tableau de certains objets de pièces de rechange de véhicules.
Voici un exemple de certains d'entre eux :
[ { "name": "u0625u0643u0635u062fu0627u0645 u0623u0633u0648u062f u062eu0641u064au0641", "category": "u0625u0643u0635u062fu0627u0645u0627u062a", "quantity": "2", "price": "55", "id": 1756378, "shelf": "30", "slot": "173" }, { "name": "u0625u0643u0635u062fu0627u0645 u0623u0633u0648u062f u0645u062du0645u0644", "category": "u0625u0643u0635u062fu0627u0645u0627u062a", "quantity": "2", "price": "90", "id": 1181335, "shelf": "", "slot": "" }
Dans mon fichier index.php, j'ai un formulaire qui contient une zone de saisie de texte et un bouton de soumission. Je souhaite ajouter une fonctionnalité de recherche afin que chaque fois que vous cliquez sur le bouton Soumettre, un formulaire soit rempli avec toutes les informations sur les pièces de rechange.
Pour cela, j'ai créé deux fonctions comme suit :
function getParts() { return json_decode(file_get_contents(__DIR__ . '/parts.json'), true); } function getPartByName($name) { $parts = getParts(); foreach ($parts as $part) { if (str_starts_with($part['name'], $name)) { return $part; } } return ''; }
Le problème c'est quand j'utilise ce code :
$searchedPart = $_POST['searched-part']; $partToBeSearched = trim($searchedPart); echo getPartByName($partToBeSearched)['name'];
Ce que j'obtiens est la première correspondance du nom de la pièce de rechange commençant par le préfixe saisi.
La valeur de retour dans la fonction getPartByName ne peut renvoyer qu'un seul élément.
Si vous souhaitez plusieurs résultats, vous devez renvoyer un tableau.
Essayez-le en ligne (Texte mis à jour pour le rendre plus facile à comprendre que l'utilisation de caractères codés)