这是一个例子
Array
(
[menu] => 11
[parent] => 0
[0] => 34
[page] => 1
)
我希望将其排序为这样,带有数字索引的所有值都应该放在底部。
Array
(
[menu] => 11
[parent] => 0
[page] => 1
[0] => 34
)
答案 0 :(得分:2)
您可以使用ksort()
:http://php.net/manual/en/function.ksort.php
$arr = array(
'menu' => 11,
'parent' => 0,
0 => 34,
'page' => 1
);
echo '<pre>';
print_r($arr);
ksort($arr);
print_r($arr);
echo '</pre>
将输出
Array
(
[menu] => 11
[parent] => 0
[0] => 34
[page] => 1
)
Array
(
[menu] => 11
[page] => 1
[parent] => 0
[0] => 34
)
答案 1 :(得分:0)
听起来像是usort。 一些示例代码:
function cmp($a, $b)
{
if (gettype($a) == "string" && gettype($b) == "int")
return -1;
else if (gettype($a) == "int" && gettype($b) == "string")
return 1;
else if (gettype($a) == "string" && gettype($b) == "string")
{
//String comparer
}
else if (gettype($a) == "int" && gettype($b) == "int")
{
if ($a == $b)
return 0;
return ($a < $b) ? -1 : 1;
}
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: $value\n";
}
答案 2 :(得分:0)
这似乎有效
<?php
$a = Array(
'menu' => 11,
'parent' => 0,
0 => 34,
'page' => 1,
);
function cmp($a, $b) {
$ia = is_int($a);
$ib = is_int($b);
if ($ia === $ib) {
return 0;
} elseif ($ia) {
return 1;
} elseif ($ib) {
return -1;
}
return 0;
}
uksort($a, 'cmp');
var_dump($a);