>我处于我想将 PHP 中的数组分组以根据组 ID 进行分组的情况,我得到的是以下内容
Array (
[0] => Array (
[raw] => I am text string
[group_id] => 1
)
[1] => Array (
[raw] => Another text string
[group_id] => 1
)
[2] => Array (
[raw] => text placeholder
[group_id] => 2
)
)
但我想要如下所示的输出
Array (
[0] => Array (
Array(
[0] => Array (
[raw] => I am text string
[group_id] => 1
)
[1] => Array (
[raw] => Another text string
[group_id] => 1
)
)
[1] => Array (
[raw] => text placeholder
[group_id] => 2
)
)
在当前输出中,您可以注意到前两个数组元素的"group_id"是相同的,即 1,而在预期的输出中,具有相同"group_id"的元素被包装到父数组中。
供您考虑,这里是数组代码;
<?php
$output = array(
array ("raw"=> "I am text string", "group_id" => 1),
array ("raw"=> "Another text string", "group_id" => 1),
array ("raw"=> "text placeholder", "group_id" => 2),
);
print_r($output);
?>
因此,最终,我想将具有相同"group_id"的数组分组到另一个数组中。
提前感谢您的时间和帮助。
任何帮助都值得赞赏,因为我不明白逻辑。
我认为没有修剪单个/单独组 ID 的嵌套尺寸的快捷方式,但您可以执行以下操作:
$output = array(
array ("raw"=> "I am text string", "group_id" => 1),
array ("raw"=> "Another text string", "group_id" => 1),
array ("raw"=> "text placeholder", "group_id" => 2),
);
$new = array();
foreach ($output as $value) {
$new[$value['group_id']][] = $value;
}
// trim single/lone arrays
foreach ($new as &$value) {
if(count($value) <= 1) {
$value = reset($value);
}
}
echo '<pre>';
print_r($new);
$newArr = array();
foreach($output as $values) {
$new[$values['group_id']][] = $values;
}
它将为您创建数组。
使用以下代码:
<?php
$output = array(
array ("raw"=> "I am text string", "group_id" => 1),
array ("raw"=> "Another text string", "group_id" => 1),
array ("raw"=> "text placeholder", "group_id" => 2),
);
$new = array();
foreach($output as $values) {
$new[$values['group_id']][] = $values;
}
$new = array_values($new);
echo '<pre>';
print_r($new);
?>