gpt4 book ai didi

php - 如果依赖项是数组,我如何重新排列数组项将依赖项移动到顶部?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:21:09 24 4
gpt4 key购买 nike

我有以下数组,其中每个项目可能(或可能不依赖)另一个项目:

$test = array(
'c' => array(
'depends' => array('b')
),
'a' => array(),
'b' => array(
'depends' => array('a', 'd')
),
'd' => array(
'depends' => array('a')
)
);

我要输出结果

$test = array(
'a' => array(),
'd' => array(
'depends' => array('a')
),
'b' => array(
'depends' => array('a', 'd')
),
'c' => array(
'depends' => array('b')
)
);

这段代码有问题类似于这个问题“How can I rearrange array items moving dependencies on top?

但不同的是如果 depend 有多个依赖函数 array_multisort 无法对其进行排序。

最佳答案

我猜这就是你要找的,虽然你的问题很含糊:

<?php
$input = array(
'c' => array(
'depends' => array('b')
),
'a' => array(),
'b' => array(
'depends' => array('a', 'd')
),
'd' => array(
'depends' => array('a')
)
);

$output = array();

foreach ($input as $dependant=>$settings) {
if ( is_array($settings)
&& isset($settings['depends'])
&& is_array($settings['depends'])) {
foreach ($settings['depends'] as $dependent) {
$output[$dependent]['dependent'][] = $dependant;
}
}
}

var_dump($output);

输出是:

array(3) {
'b' =>
array(1) {
'dependent' =>
array(1) {
[0] =>
string(1) "c"
}
}
'a' =>
array(1) {
'dependent' =>
array(2) {
[0] =>
string(1) "b"
[1] =>
string(1) "d"
}
}
'd' =>
array(1) {
'dependent' =>
array(1) {
[0] =>
string(1) "b"
}
}
}

关于php - 如果依赖项是数组,我如何重新排列数组项将依赖项移动到顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33773963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com