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
預期輸出:
A was found! Their Age is: 42, They are based in: Australia
試驗:使用array_search()
$result = array_search("$name",$names);
echo $result;
未打印任何值。
有關如何修復我的(in_array)
或如何使用array_search()
列出信息的任何反饋將不勝感激。
完美!謝謝@Sougata Bose爲您的快速回復和解釋每一步如何工作,這對像我這樣的初學者非常有用:) – Ben
是否也可以繼續搜索另一個同名實例? 如果搜索$ name ='Z'並且存在Z的兩個實例,您是否可以顯示兩個實例的信息? '2'=>數組 ( '名稱'=> 'Z', '年齡'=> 50, '位置'=> '日', ) '999'=>數組 ( 'name'=>'Z', 'age'=> 99, 'location'=>'Finland', ) Z was found!他們的年齡是:50,總部設在:日本 Z被發現!他們的年齡是:99,他們的總部設在:芬蘭 – Ben
在這種情況下,您必須使用循環並取消第一個發現 –