【发布时间】:2017-05-09 17:37:52
【问题描述】:
我在尝试根据其他数组填充数组时遇到问题...让我向您解释一下问题
我有这个数组
$contents = (
[0] => Array
(
[id] => 1
[title] => Text1
[slug] => text1
)
[1] => Array
(
[id] => 2
[title] => Text2
[slug] => text2
)
[2] => Array
(
[id] => 3
[title] => Text3
[slug] => text3
)
[3] => Array
(
[id] => 4
[title] => Text3
[slug] => text3
)
)
然后我在上面的 slugs 的数组中创建了一个变量 $st
foreach($contents as $key => $value) {
$st[$key] = $value['slug'];
}
然后我从内部代码点火器中提取了 uri 段
$path = $this->uri->segment(1);
然后我从 $st 数组中取出 $path 的值:
if(($key = array_search($path, $st)) !== false) {
unset($st[$key]);
}
然后我把$st数组用
$stack = array_values($st);
最终我遍历了新数组,看看里面是否有值,如果是,我像这样推入相对数组中:
$per[] = array();
while($i < count($contents)) {
if(in_array($path, $stack) === FALSE) {
array_push($per, $percorsi[$i]);
}
$i++;
}
最后我有一个空数组,如果我把 if 不在数组中,我将所有四个元素都放在新数组中。
我希望我已经很好地解释了我。
感谢您的帮助
干杯
【问题讨论】:
-
在while循环中我放了array_push($per, $percorsi[$i]);但在我犯了一个错误。在代码中是这样的:array_push($per, $contents[$i]);
-
为什么不 -
if(!in_array($path, $stack))? -
它给了我所有四个元素,而没有跳过具有 $path 值的元素
标签: php arrays array-push