【发布时间】:2017-09-14 18:17:01
【问题描述】:
我的任务是按字母顺序排列我在 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 中,以便最终对它们进行排序,使它们按以下顺序运行:First Highschool、Fourth Highschool、Second Highschool、Third Highschool。
另外,这就是 $highschool_info 打印时的样子。
Array
(
[0] = Array
(
[value] = 2718
[revision_id] = 189531
)
[1] = Array
(
[value] = 2719
[revision_id] = 189532
)
[2] = Array
(
[value] = 2720
[revision_id] = 189821
)
)
【问题讨论】:
-
输入内容和预期输出内容?
-
所以你想
$highschool将值作为数组的键?
标签: php arrays loops multidimensional-array