如何根据传入的$u请求对php中的数组进行排序[";id";]

如何根据传入的$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=&

这是我的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=>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;
        }
}