2
私はPHPを学んでいますが、指定された文字列の配列を検索し、一致する場合は値を返します。私はin_array()
とarray_search
を使用しようとしましたが、どちらも正しく値を一致/返すことができませんでした。文字列の2D関連配列をチェックし、情報を返します。(PHP)
print_r($ names);
Array
(
[0] => Array
(
[name] => A
[age] => 42
[location] => Australia
)
[1] => Array
(
[name] => B
[age] => 21
[location] => France
)
[2] => Array
(
[name] => Z
[age] => 50
[location] => Japan
)
)
私は名前が配列に存在するかどうかを確認し、同じインデックスの場所の情報を返すために、チェックしたいと思います。
$name="A";
if (in_array($name, $names)) {
$age=$names['age'];
$location=$names['location'];
echo "$name was found! Their Age is: $age, They are based in: $location";
}
else{
echo"$name was not found";
}
ただし、名前が見つからず、年齢と場所のデータが読み込まれません。
出力:
A was not found
予想される出力:array_searchを使用して
A was found! Their Age is: 42, They are based in: Australia
テスト()
$result = array_search("$name",$names);
echo $result;
値は印刷されません。
(in_array)
の修正方法や、array_search()
を使用して情報を一覧表示する方法についてのご意見をいただければ幸いです。
パーフェクトでなければなりません!ありがとう@Sougata Boseあなたの素早い返信とそれぞれのステップがどのように働いていたか説明するために、それは私のような初心者のためにとても役に立ちました:) – Ben
同じ名前の別のインスタンスを検索し続けることは可能ですか? $ name = 'Z'という検索があり、Zのインスタンスが2つ存在する場合、両方のインスタンスの情報を表示できますか? '2' =>配列 ( '名称' => 'Z'、 '年齢' => 50、 '場所' => '日本'、 )、 '999' =>配列 ( 'name' => 'Z'、 'age' => 99、 'location' => 'フィンランド' Zが見つかりました。彼らの年齢は:50、彼らはに基づいています:日本 Zが見つかりました!彼らの年齢は:99、彼らはに基づいています:フィンランド – Ben
その場合は、ループを使用し、最初の所見を解除する必要があります –