我有一个名为$ quotes的数组,当我print_r时,结果的例子是这样的:
Array ( [id] => advshipper [methods] => Array (
[0] => Array ( [id] => 2-0-0 [title] => Small Parcels [cost] => 4.5 [icon] => [shipping_ts] => [quote_i] => 0 )
[1] => Array ( [id] => 3-0-0 [title] => Large Parcels up to 1150mm long [cost] => 8.95 [icon] => [shipping_ts] => [quote_i] => 1 )
[2] => Array ( [id] => 4-0-0 [title] => Extra Large Parcels over 1150mm long [cost] => 15 [icon] => [shipping_ts] => [quote_i] => 2 ) ) [module] => Shipping )
我需要一个简单的方法来查看$ quotes,找出哪个[cost]具有最低值然后记录,在本例中为[0],以便它们可以在另一个代码段中使用。
没有爆炸数组然后循环遍历所有内容,有没有一种简单的方法来实现我想要的?
答案 0 :(得分:1)
当您使用的版本高于5.5时,您只需使用array_column功能:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:elevation="5dp"
app:cardCornerRadius="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Dummy Header"
android:textColor="@android:color/holo_red_light"
android:textSize="20sp"
android:textStyle="bold"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/app_text"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
如果你愿意,你也可以检索行的id:
echo min(array_column($quotes['id'],'cost'));
答案 1 :(得分:0)
array_reduce($quotes, function($minimum, $current) {
return $current['cost'] < $minimum['cost'] ? $current : $minimum;
}, $quotes[0]);
这将返回$quotes
最低值cost
的行。
答案 2 :(得分:0)
如果我理解正确,您需要找到成本数组的最低值。 您可以执行array_map来获取值
class MyComponent extends React.Component {
constructor(props) {
super(props);
// Preserve this context
this.handleKeyDown = this.handleKeyDown.bind(this);
}
render() {
return <div></div>;
}
handleKeyDown() {
// this.setState(...);
}
componentWillMount() {
window.addEventListener("keydown", this.handleKeyDown);
}
componentWillUnmount() {
// Clean up
window.removeEventListener("keydown", this.handleKeyDown);
}
};
然后你需要使用
$lowestcost = array_map(function($costval) {
return $costval['cost'];
}, $array);
希望这有帮助