我有一个名为“士兵”的多维数组:
Array
(
[0] => Array
(
[name] => Saiga 20k Semi
[target] => 100
[star] => gold
)
[1] => Array
(
[name] => SVU Snaiperskaya Short
[target] => 85
[star] => gold
)
[2] => Array
(
[name] => Type 88 Sniper
[target] => 56
[star] => gold
)
我正在尝试按“目标”值对数组进行排序。我正在使用:
usort($soldier,'compare_target');
function compare_target($x,$y)
{
if($x['target'] == $y['target'])
{
return 0;
}
elseif($x['target'] < $y['target'])
{
return 1;
}
else
{
return -1;
}
}
但是PHP抛出以下错误:“未定义的索引:目标”为函数内的2行,有什么想法吗?
答案 0 :(得分:4)
function compare_target($x,$y)
{
if ( !(isset($x['target']) && isset($y['target'])) )
return 0;
if ($x['target'] == $y['target'])
return 0;
elseif ($x['target'] < $y['target'])
return 1;
else
return -1;
}
假设某些东西存在,这总是很糟糕的风格。如果你想使用$x['target']
,你必须检查它是否有效,或者你有一个挥之不去的bug。
答案 1 :(得分:1)
对不起伙计我按照建议在函数内部进行了一些$ x和$ y的转储,由于我自己的错,这是$ soldier中的一些数组元素的问题,我会删除这个问题,抱歉浪费你的时间!!