我的任务是按字母顺序排列一些我在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
)
)
答案 0 :(得分:0)
$highschool_array = array_multisort($highschool_info, SORT_ASC, SORT_STRING);
array_multisort()看起来是你最好的选择。请查看PHP文档中的示例2和3。