使用php

时间:2016-05-30 14:13:20

标签: php arrays

我有一个名为$ 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],以便它们可以在另一个代码段中使用。

没有爆炸数组然后循环遍历所有内容,有没有一种简单的方法来实现我想要的?

3 个答案:

答案 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);

希望这有帮助