Php 数组搜索总是给我假
因此,我试图搜索一个数组,由于某种原因,它总是给我假,即使名称数组中存在字母。这就是我想要它做的,搜索数组,如果存在匹配项,它应该将名称添加到$data数组中,并通过将其编码为JSON将其发送到AJAX。但我的如果总是给假 编辑:另一个问题中的答案没有解决这个问题,因为这将始终导致我的数组返回falsePhp 数组搜索总是给我假,php,arrays,Php,Arrays,因此,我试图搜索一个数组,由于某种原因,它总是给我假,即使名称数组中存在字母。这就是我想要它做的,搜索数组,如果存在匹配项,它应该将名称添加到$data数组中,并通过将其编码为JSON将其发送到AJAX。但我的如果总是给假 编辑:另一个问题中的答案没有解决这个问题,因为这将始终导致我的数组返回false $user = array( 0 => array( "id"=> 0, "photo"=>
$user = array(
0 => array(
"id"=> 0,
"photo"=>"smily",
"name"=>"Name One",
),
1 => array(
"id"=> 0,
"photo"=>"smily",
"name"=>"Name Five",
),
2 => array(
"id"=> 0,
"photo"=>"smily",
"name"=>"Name Four",
),
3 => array(
"id"=> 0,
"photo"=>"smily",
"name"=>"Name Three",
),
);
$wordToSearch = "N";
$data = Array();
for($i = 0; $i < count($user); $i++)
{
if(array_search($wordToSearch, array_column($user, 'name')) == false)
{
array_push($data, array(
'name' => $user[$i]['name'],
'img' => $user[$i]['photo'],
'pos' => $user[$i]['position'],
'Id' => $user[$i]['id']
)
);
echo json_encode($data);
}
}
$user=array(
0=>数组(
“id”=>0,
“照片”=>“微笑”,
“name”=>“name One”,
),
1=>数组(
“id”=>0,
“照片”=>“微笑”,
“姓名”=>“姓名五”,
),
2=>数组(
“id”=>0,
“照片”=>“微笑”,
“name”=>“name Four”,
),
3=>数组(
“id”=>0,
“照片”=>“微笑”,
“名称”=>“名称三”,
),
);
$wordToSearch=“N”;
$data=Array();
对于($i=0;$i$user[$i]['name'],
'img'=>$user[$i]['photo'],
'pos'=>$user[$i]['position'],
'Id'=>$user[$i]['Id']
)
);
echo json_编码($data);
}
}
我可能错了,但是
if(array_search($wordToSearch, array_column($user, 'name')) == false)
我想你想要
if (strpos($user[$i]['name'], $wordToSearch) !== false)
array\u列
用于获取所有用户名或所有用户IDarray\u search
用于搜索数组。。。但我想你是在搜索字符串
无关的。。。而不是使用
array\u push($data,array(…)代码>,使用$data[]=array(…)代码>由于没有函数调用,因此效率更高。。在我看来,编码和阅读更容易。您可以使用strpbrk-strpbrk-在字符串中搜索一组字符中的任何一个
foreach ($user as $val) {
if (strpbrk($val['name'], $wordToSearch) != false) {
array_push($data, array(
'name' => $val['name'],
'img' => $val['photo'],
'pos' => $val['position'],
'Id' => $val['id']
)
);
echo json_encode($data);
}
}
}
使用array\u search
时,必须使用identity操作符==
,因为索引0被评估为可能与Add$i to strpos()重复。如果(strpos($user[$i]['name'],$wordToSearch)!==false)@besciualex:d'oh,你说得对。。。我以为他是在通过一个是最好的doe,foreach或是$Itis worked kindoish的用户进行搜索,它会添加任何人,例如,如果我的wordtosearch是三个,它会添加所有的名字