从其他数组填充数组

时间:2017-05-09 17:37:52

标签: php arrays array-push

我有一个问题尝试根据其他数组填充数组...让我解释一下问题

我有这个数组

$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不在数组中我有新数组中的所有四个元素。

我希望我能解释得很好。

感谢您的帮助

干杯

3 个答案:

答案 0 :(得分:0)

改变这个。因为你在挑战多阵列。因此未插入值

 $per = [];

答案 1 :(得分:0)

好的,我发现解决方案改变了工作流程,如下所示:

defered.resolve(html)

感谢。

答案 2 :(得分:0)

这是一个简单的解决方案:

   $contents = array ( 
 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'
        )

);

$path = 'text3'; //$this->uri->segment(1);
foreach($contents as $key=>$val){
    if(in_array($path, $val)){
        unset($contents[$key]);
    }
}
echo "<pre>"; print_r($contents);

Demo