将数据转换为唯一值数组

时间:2018-01-27 23:09:57

标签: php arrays

我正在迭代来自API的JSON数据,如下所示:

$data = file_get_contents(endpoint); // this is a WordPress func
$parsed_json = json_decode($data, true);

foreach($parsed_json as $unit_floor_data) {
    $unit_floor_data["Beds"] ...
}

这是我被卡住的地方。 $unit_floor_data var_dump string(1) "1" string(1) "1" string(1) "2" string(1) "2" string(1) "3" string(1) "4"。目标是有一个像[1,2,3,4]这样的数组,我可以迭代并在输出的HTML中使用,如下所示:

$output = '<div id="property_floorplan" class="checkbox-container">';
        $output .= '<label>Refine:</label>';

        $output .= '<div class="checkbox-inline"><label class="bedrooms"><input type="checkbox" data-bedrooms="1">'.$bed_number.' Bed</label></div>' ;
        ..and so on...

这是$ parsed_json

的var_dump的片段
array(6) { [0]=> array(18) { ["PropertyId"]=> string(6) "167675" ["FloorplanId"]=> string(6) "972907" ["FloorplanName"]=> string(11) "Blue Bonnet" ["Beds"]=> string(1) "1" ["Baths"]=> string(4) "1.00" ["MinimumSQFT"]=> string(3) "701" ["MaximumSQFT"]=> string(3) "701" ["MinimumRent"]=> string(2) "-1" ["MaximumRent"]=> string(2) "-1" ["MinimumDeposit"]=> string(1) "0"

显然,PHP不是我的强项,我感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

这样的事情:

<?php

$data = '{
            "0" : {"Beds" : 1},
            "1" : {"Beds" : 1},
            "2" : {"Beds" : 1},
            "3" : {"Beds" : 2},
            "4" : {"Beds" : 3},
            "5" : {"Beds" : 4},
            "13" : {"Beds" : 13}
        }';

$parsed_json = json_decode($data, true);

// List of unique "beds" values. Indexed array.
$bedsList = [];

foreach ($parsed_json as $unit_floor_data) {
    $beds = $unit_floor_data['Beds'];

    // Append the "beds" value to the $bedsList, if not already. 
    if (!in_array($beds, $bedsList)) {
        $bedsList[] = $beds;
    }
}

$output = '<div id="property_floorplan" class="checkbox-container">';
$output .= '<label>Refine:</label>';

// Create a div with checkbox for each item in $bedsList.
foreach ($bedsList as $key => $beds) {
    $output .= '<div class="checkbox-inline">';
    $output .= '<label class="bedrooms">';
    $output .= '<input type="checkbox" data-bedrooms="' . $beds . '">' . $beds . ' Beds';
    $output .= '</label>';
    $output .= '</div>';
}

$output .= '</div>'; /* End of "property_floorplan" div */

echo $output;

建议:尽量避免从php打印html代码。在html部分中使用php片段,而不是反向。

祝你好运。