如何根据传入的$u请求对php中的数组进行排序[";id";]
这是我的php代码如何根据传入的$u请求对php中的数组进行排序[";id";],php,arrays,sorting,Php,Arrays,Sorting,这是我的php代码 //coming id is identical to one of the list if(isset($_REQUEST["id"])) { $id = intval($_REQUEST["id"]); } $arr["array"] = array( 0=>array("ID"=>"1", "NAME"=>"aaa"), 1=>array("ID"=>"2", "NAME"=>"bbb"), 2=&
//coming id is identical to one of the list
if(isset($_REQUEST["id"])) {
$id = intval($_REQUEST["id"]);
}
$arr["array"] = array(
0=>array("ID"=>"1", "NAME"=>"aaa"),
1=>array("ID"=>"2", "NAME"=>"bbb"),
2=>array("ID"=>"3", "NAME"=>"ccc"),
3=>array("ID"=>"4", "NAME"=>"ddd")
);
echo "<pre>"; print_r($arr); echo "</pre>";
未经测试,但我认为可以
foreach ($arr['array'] as $key => $val)
{
if ($val['ID'] == $id)
{
unset($arr['array'][$key]);
$arr['array'] = array_merge(array($val), $arr['array']);
break;
}
}
if(isset($\u请求[“id”])){
$id=intval($_请求[“id”]);
}
$arr[“数组”]=数组(
0=>数组(“ID”=>“1”,“名称”=>“aaa”),
1=>数组(“ID”=>“2”,“NAME”=>“bbb”),
2=>数组(“ID”=>“3”,“名称”=>“ccc”),
3=>数组(“ID”=>“4”,“名称”=>“ddd”)
);
$sorted=Array();
$sortedIndex=1;//为匹配id保留索引=0
$found=false;
对于($a=0;$a计数($arr['array'])和(!$found){
//在数据数组中找不到id。。。
回显“找不到ID!”;
打破
}
}//for循环
回声“;打印(已排序);回声“;
试试这个
如果您使用ID作为数组键,您可以更轻松地使用它。您正在循环使用
count($arr)
,同时使用它来索引$arr['array']
。是的,您是对的,注意到并更改了代码计数($arr['array']),谢谢
if(isset($_REQUEST["id"])) {
$id = intval($_REQUEST["id"]);
}
$arr["array"] = array(
0=>array("ID"=>"1", "NAME"=>"aaa"),
1=>array("ID"=>"2", "NAME"=>"bbb"),
2=>array("ID"=>"3", "NAME"=>"ccc"),
3=>array("ID"=>"4", "NAME"=>"ddd")
);
$sorted = Array();
$sortedIndex = 1; // preserve index=0 for the match id
$found = false;
for($a=0;$a<count($arr['array']);$a++){
if($arr['array'][$a]['ID'] == $id){
sorted['array'][0] = $arr['array'][$a];
$found = true;
}else{
$sorted['array'][$sortedIndex] = $arr['array'][$a];
++$sortedIndex;
}
if($a+1 > count($arr['array']) && !$found){
//id not found in data array...
echo "ID not found!";
break;
}
}//for loop
echo "<pre>"; print_r($sorted); echo "</pre>";
foreach ($arr['array'] as $key => $val)
{
if ($val['ID'] == $id)
{
unset($arr['array'][$key]);
$arr['array'] = array_merge(array($val), $arr['array']);
break;
}
}