大家好我有一个包含id和name的数组,我有一个带有coma saperated ids的字符串。 我想要的是,对于字符串中的每个id,在数组中找到名称并打印名称。
$query=select name,id from table where something='match'
$array1=mysqli_fetch_array($query);
现在我有另一个值为1,2,3,4,5....
我想从数组中找到字符串中每个id的名称。
请给我一些建议,帮助我解决这个问题。
var_dump($_SESSION['deps_array']);
array(12) { [0]=> string(1) "2" ["did"]=> string(1) "2" [1]=> string(8) "Accounts" ["name"]=> string(8) "Accounts" [2]=> string(9) "photo.png" ["photo"]=> string(9) "photo.png" [3]=> string(0) "" ["dabout"]=> string(0) "" [4]=> string(0) "" ["fname"]=> string(0) "" [5]=> string(0) "" ["lname"]=> string(0) "" }
$array=$_SESSION['deps_array'];
$res = search('3,6', $array);
echo "Result:".PHP_EOL;
var_dump($res);
结果
Warning: Illegal string offset 'did' in /Applications/AMPPS/www/pros/site/test.php on line 12
Warning: Illegal string offset 'did' in /Applications/AMPPS/www/pros/site/test.php on line 12
功能
function search($ids,$array) {
$ids=substr($ids,1);
$idArray = explode(",", $ids);
$result = Array();
foreach($idArray as $id)
{
foreach ($array as $key => $val) {
$iddd=$val['did'];
if ( $iddd=== $id) {
echo $val.','.$val;
}
}
}
}
答案 0 :(得分:0)
您可以使用以下此功能,例如search($ids, $array1);
其中$ids
变量包含您的值1,2,3,4,5, n
。
<强>功能强>
function search($ids, $array) {
$idArray = explode(",", $ids);
$result = Array();
foreach($idArray as $id)
{
foreach ($array as $key => $val) {
if ($val['id'] === $id) {
array_push($result, $val['name']);//this line is updated
}
}
}
return $result;
}//end function
在函数内部,$ids
变量转换为数组,外部foreach循环遍历每个id,并尝试在值中查找预期的id。如果找到,则将其推送到结果数组,最后从数组返回$result
数组。这将仅返回匹配的值。
免责声明:我没有测试过该功能,但它应该可以正常工作。
<强>更新强>
考虑您的结果$array1
与此数组相同:
$array = [
['id'=>'1', 'Name'=>'Name 1'],
['id'=>'2', 'Name'=>'Name 2'],
['id'=>'3', 'Name'=>'Name 3'],
['id'=>'4', 'Name'=>'Name 4'],
['id'=>'5', 'Name'=>'Name 5'],
['id'=>'6', 'Name'=>'Name 6'],
['id'=>'7', 'Name'=>'Name 7'],
['id'=>'8', 'Name'=>'Name 8'],
['id'=>'9', 'Name'=>'Name 9'] ];
function search($ids, $array) {
$idArray = explode(",", $ids);
$result = Array();
foreach($idArray as $id)
{
foreach ($array as $key => $val) {
if ($val['id'] === $id) {
echo "name:".$val['Name'];
array_push($result, $val['Name']);
}
}
}
return $result;
}//end function
// test
$res = search('3,6', $array);
echo "Result:".PHP_EOL;
var_dump($res);
结果屏幕截图