如何获取数组键值并计算一个数组对象中的值

尼兰詹

我怀疑在 php 数组中获取数组键值并计算 php 数组中重复的相同键。这里我通过一个变量发布我的数组对象输出,我正在获取这些数据。这里我的要求是在这个数组中,我有 [room_type] 和 [meal_type]。

这里 [room_type] => APARTMENT ONE BEDROOM 是这个数组中的 3 次。所以我需要的结果是 3 x APARTMENT ONE BEDROOM 这里 [room_type] => APARTMENT TWO BEDROOM 是这个数组中的 2 次。所以我需要的结果是 2 x APARTMENT TWO BEDROOM 这里 [room_type] => APARTMENT THREE BEDROOM 是 1 次出现在这个数组中。所以我要求的结果是 1 x APARTMENT THREE BEDROOM

$room_details =  
Array
(
    [0] => stdClass Object
        (
            [id] => 4508
            [api] => hotelbeds
            [room_no] => 1
            [room_type] => APARTMENT ONE BEDROOM
            [meal_type] => ONE ROOM
            [updated_on] => 2019-01-16 13:03:17
        )

    [1] => stdClass Object
        (
            [id] => 4509
            [room_no] => 2
            [room_type] => APARTMENT TWO BEDROOM
            [meal_type] => TWO ROOMS
            [updated_on] => 2019-01-16 13:03:09
        )

    [2] => stdClass Object
        (
            [id] => 4510
            [room_no] => 3
            [room_type] => APARTMENT ONE BEDROOMS
            [meal_type] => TWO ROOMS
            [updated_on] => 2019-01-16 13:03:38
        )

    [3] => stdClass Object
        (
            [id] => 4511
            [room_no] => 3
            [room_type] => APARTMENT TWO BEDROOMS
            [meal_type] => TWO ROOMS
            [updated_on] => 2019-01-16 13:03:38
        )

    [4] => stdClass Object
        (
            [id] => 4512
            [room_no] => 3
            [room_type] => APARTMENT THREE BEDROOMS
            [meal_type] => THREE ROOMS
            [updated_on] => 2019-01-16 13:03:38
        )

    [5] => stdClass Object
        (
            [id] => 4513
            [room_no] => 3
            [room_type] => APARTMENT ONE BEDROOMS
            [meal_type] => ONE ROOM
            [updated_on] => 2019-01-16 13:03:38
        )
)

这个结果我想像这样显示在一个 div 标签中。

<div class="roomtype">
<p>
3 x APARTMENT ONE BEDROOM
2 x APARTMENT TWO BEDROOM
1 x APARTMENT THREE BEDROOM
</p>
</div>

[meal_type] => ONE ROOM 进入这个数组 2 次所以结果是 2 x ONE ROOM [meal_type] => 两个 ROOMS 进入这个数组 3 次所以结果是 3 x TWO ROOMS [meal_type] => 三个房间进入这个数组 1 次所以结果是 1 x 三个房间 这个结果我想在另一个 Div 标签中显示这样。

<div class="mealtype">
<p>
2 x ONE ROOM 
3 x TWO ROOMS
1 x THREE ROOMS
</p>
</div>

我试过下面的代码不起作用,任何人都可以帮忙解决这个问题。

                                        For Meal Type 
                                        --------------
                                        $countedValues = array_count_values($room_details->meal_type);
                                        //Build strings from value and display them.
                                        foreach( $countedValues as $roomType=>$count ){
                                            echo $count . ' x ' . $Mealtype . '<br />';
                                        }

                                        For Room Type 
                                        --------------
                                        $countedValues = array_count_values($room_details->room_type);
                                        //Build strings from value and display them.
                                        foreach( $countedValues as $roomType=>$count ){
                                            echo $count . ' x ' . $roomType . '<br />';
                                        }
塞巴斯蒂安·瓦尔德鲍尔

你好尼兰詹

您可以遍历数组并按如下方式计算这些数据,

<?php
$room_details = array(
    array(
        "id" => 4508, 
        "api" => "hotelbeds",
        "room_no" => 1,
        "room_type" => "APARTMENT ONE BEDROOMS",
        "meal_type" => "ONE ROOM",
        "updated_on" => "2019-01-16 13:03:17"
    ),
    array(
        "id" => 4509,
        "room_no" => 2,
        "room_type" => "APARTMENT TWO BEDROOMS",
        "meal_type" => "TWO ROOMS",
        "updated_on" => "2019-01-16 13:03:09"
    ),
    array(
        "id" => 4510,
        "room_no" => 3,
        "room_type" => "APARTMENT ONE BEDROOMS",
        "meal_type" => "TWO ROOMS",
        "updated_on" => "2019-01-16 13:03:38"
    ),
    array(
        "id" => 4511,
        "room_no" => 3,
        "room_type" => "APARTMENT TWO BEDROOMS",
        "meal_type" => "TWO ROOMS",
        "updated_on" => "2019-01-16 13:03:38"
    ),
    array(
        "id" => 4512,
        "room_no" => 3,
        "room_type" => "APARTMENT THREE BEDROOMS",
        "meal_type" => "THREE ROOMS",
        "updated_on" => "2019-01-16 13:03:38"
    ),
    array(
        "id" => 4513,
        "room_no" => 3,
        "room_type" => "APARTMENT ONE BEDROOMS",
        "meal_type" => "ONE ROOM",
        "updated_on" => "2019-01-16 13:03:38"
    )
);

$room_types = [];
$meal_types = [];

foreach($room_details as $k => $v) {
    if(!array_key_exists($v["room_type"], $room_types)) {
        $room_types[$v["room_type"]] = 1;
    } else {
        $room_types[$v["room_type"]] = $room_types[$v["room_type"]] + 1;
    }

    if(!array_key_exists($v["meal_type"], $meal_types)) {
        $meal_types[$v["meal_type"]] = 1;
    } else {
        $meal_types[$v["meal_type"]] = $meal_types[$v["meal_type"]] + 1;
    }
}

print_r($room_types);
print_r($meal_types);
?>

现在您可以访问这些数组以获取计数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Opencart中获取多维数组的最后一个数组值

如何获取另一个数组中不存在的数组值

如何比较一个数组中的对象

如何使用一个数组索引和另一个数组键值获取差异数组?

使用另一个数组的键值获取数组的值

根据另一个数组中的值删除嵌套对象数组中的值

如何基于另一个数组中的值过滤对象数组

如何使用另一个数组中其他对象的键替换对象数组中的值

如何获取某个数组参数的值并将其放在另一个数组中?

如何检查另一个数组中是否存在键值对(数组中)?

获取键值位于另一个数组中的多维数组的值

如何遍历对象数组与另一个数组中的公共元素匹配并返回“名称”的键值

如何用另一个数组索引值替换一个数组键值?

如何将一个数组键值与另一个数组索引值进行比较?

如何从数组中获取特定元素并基于数组键值的比较创建一个新数组?

Rapidjson,在另一个数组的数组中获取一个值

将数组/对象键值替换为另一个数组/对象javascript的键值

如何从一个数组中删除一个数组中的对象?

如何为另一个数组中的每个键值分配一个新数组

将一个数组(键)中的对象数组变成另一个数组(值)

从多个数组中获取另一个键值

如何在laravel中获取一个数组对象

如何从另一个数组的值中获取一个 numpy 数组(Python)

从另一个数组获取相同的值并分配给数组的对象

Ramda - 从多个对象中获取一个数组

如何将一个数组对象的值作为另一个数组对象的键

如何在另一个数组中获取数组的索引值

如何使用 stdClass 对象从另一个数组中的数组中获取值?

根据另一个数组中的键值对象从数组中删除对象的最有效方法