将多维数组中的值放入新数组

时间:2017-09-14 18:17:01

标签: php arrays loops multidimensional-array

我的任务是按字母顺序排列一些我在Drupal网站上用php for循环输出的值($ highschool)。我的理解是,我需要将这些值放入一个新数组中,以便在这个实例中正确地对它们进行排序。

<select id="high_school" name="high_school_name" required="">
    <option value="">High School*</option>

    <?php 
        $highschool_info = field_get_items('node', $node, 'field_high_school_info');
        for ($i = 0; $i < count($highschool_info); $i++) {
        $value = field_view_value('node', $node, 'field_high_school_info', $highschool_info[$i]);
        $field_collection = $value['entity']['field_collection_item'][key($value['entity']['field_collection_item'])];
        $highschool = render($field_collection['field_high_school']['#items'][0]['value']);
    ?>

    <option value="<?php print render ($highschool); ?>"><?php print render ($highschool);?></option>
    <?php } ?>
</select>

我的想法是,我能够实现将$ highschool的所有实例放入数组($ highschool_array)的目标,但我认为所发生的事情是$ highschool的每个新实例都会覆盖前一个实例该数组只包含$ highschool的最终实例。

        $value = field_view_value('node', $node, 'field_high_school_info', $highschool_info[$i]);
        $field_collection = $value['entity']['field_collection_item'][key($value['entity']['field_collection_item'])];
        $highschool = render($field_collection['field_high_school']['#items'][0]['value']);

        $highschool_array= array();

        $highschool_array[] = $highschool;

完成我之后的最简单方法是什么?为了澄清 - 让我们从上面的循环中输出来自$ highschool变量的四个选项值:First Highschool,Second Highschool,Third Highschool和Fourth Highschool。如何将所有这些值放入$ highschool_array中,以便最终对它们进行排序,使它们按此顺序运行:第一高中,第四高中,第二高中,第三高中。

此外,这是打印时$ highschool_info的样子。

Array
(
[0] = Array
    (
        [value] = 2718
        [revision_id] = 189531
    )

[1] = Array
    (
        [value] = 2719
        [revision_id] = 189532
    )

[2] = Array
    (
        [value] = 2720
        [revision_id] = 189821
    )

)

1 个答案:

答案 0 :(得分:0)

$highschool_array = array_multisort($highschool_info, SORT_ASC, SORT_STRING);

array_multisort()看起来是你最好的选择。请查看PHP文档中的示例2和3。