【发布时间】:2017-06-23 04:37:19
【问题描述】:
我有一个独特的问题,我似乎找不到答案。
我最终想找到在“价格”上具有最小值的数组的索引。
$r = array (
array('id' => 1526,'name'=>"Expedited Parcel",'day'=>1,'price'=>10),
array('id' => 1234,'name'=>"XpressPost Parcel",'day'=>2,'price'=>20),
array('id' => 5345,'name'=>"Internation Shipping",'day'=>7,'price'=>100),
array('id' => 1332,'name'=>"Snail Mail Shipping",'day'=>15,'price'=>10));
您可能还注意到“价格”有重复的值 10。在这种情况下,是否可以比较 $r[0]['day'] 和 $r[3]['day'] 的值,然后得出 $index=0?如果 PRICE 和 DAY 相同,那么任何一个都可以。
我想要的结果是print "Free Shipping".$r[$index]['name']." ".$r[$index]['day']." Business Days".
编辑 我发现我的数组不同了,没有索引,但现在有一个名称引用。
$r = array (
'DOM.EP' => array('id' => 1526,'name'=>"Expedited Parcel",'day'=>1,'price'=>10),
'DOM.PC' => array('id' => 1234,'name'=>"XpressPost Parcel",'day'=>2,'price'=>20),
'DOM.IS' => array('id' => 5345,'name'=>"Internation Shipping",'day'=>7,'price'=>100),
'DOM.SM' => array('id' => 1332,'name'=>"Snail Mail Shipping",'day'=>15,'price'=>10)
);
最后编辑感谢大家的帮助!我已经继续结合代码@Kolob Canyon 和@sathish R 来获得我的最终代码。
$min = 9999999999;
$minDay = 9999999999;
$idx = null;
foreach ($r as $key => $value) {
if($min > $r[$key]['price']) {
$min = $r[$key]['price'];
$minDay = $r[$key]['day'];
$idx = $key;
}
else if ($min == $r[$key]['price']) {
if ($minDay > $r[$key]['day']){
$minDay = $r[$key]['day'];
$idx = $key;
}
}
}
if($idx != null) {
echo "Free Shipping ". $r[$idx]['name'] . " " . $r[$idx]['day'] . " Business Days";
}
【问题讨论】:
-
告诉我这是你想要的:- eval.in/821197
-
JJ_StackO 你检查了 cmets 和答案了吗?
-
谢谢大家...!我已经有一段时间没有编程了,所有这些都非常有帮助!我感谢社区的回应。我将通过它们,看看我是否全部理解!
-
感谢您接受的回答!
标签: php arrays multidimensional-array