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
在这种情况下,您必须使用循环并取消第一个发现 –