【问题标题】:Putting an array (at the end OR beginning) subarray of another array放置另一个数组的数组(在末尾或开头)子数组
【发布时间】:2014-10-25 04:01:29
【问题描述】:

假设我得到了这个数组: array([0] => 0 [1] => 0 [2] => 1),如何把这个作为另一个数组的第n个键的值,使得

$array = array(
            [0] => array([0] => 0 [1] => 0 [2] => 1)
        )

在这个例子中它是数组 $array 的第 0 个键

我曾经浏览过 PHP 数组函数,但是我厌倦了寻找一个做同样事情的函数

编辑。

正在做:$array[0] = array(0, 0, 1); 非常适合第一个循环,但如果我想添加另一个数组作为子数组,比如array(1, 1, 1),我的输出应该是

$array = array(
            [0] => array([0] => 0 [1] => 0 [2] => 1 [3] => 1 [4] => 1 [5] => 1)
        )

请注意,新数组已添加到最后一个子数组的末尾。

请帮忙!谢谢!

编辑

$x=0;
while($x<count($WOE_CONTROL)) {
        $j=0;
        while($j<=30) {
            if ($WOE_CONTROL[$x+3]&(1<<$j)) {
                echo '<br />';
                echo '<strong>'.$Castles[$j].'</strong>';
                $castle_data_holder[0] = $WOE_CONTROL[$x];
                $castle_data_holder[1] = $WOE_CONTROL[$x+1];
                $castle_data_holder[2] = $WOE_CONTROL[$x+2];
                $castle_db[$j] = $castle_data_holder;
                unset ($castle_data_holder);
            }
            if ($x+4 < count($WOE_CONTROL)) {echo " ";}
            $j=$j+1;
        }
    $x=$x+4;
}

对不起,那里,我正在尝试提取$WOE_CONTROL中实际上包含二进制数据的所有数据,然后将它们临时存储到$castle_data_holder,然后最后将其添加到$castle_db

【问题讨论】:

  • 为什么不能直接赋值呢? $arr[0] = $innerArr;?
  • @JakeKing 对不起,我忘了说我在做循环。
  • 与循环共享整个代码并最终确定问题,回答问题的人就像在黑暗中射击试图击中目标
  • 如果你只是想合并,那么就使用数组合并:$castle_data_holder[0] = array_merge($castle_data_holder[0], $WOE_CONTROL[$x])

标签: php arrays sub-array


【解决方案1】:

只需将 $array[0] 的值设置为数组即可。这会产生一个多维数组。

$array[0] = array(0, 0, 1);

【讨论】:

    【解决方案2】:

    你在找这个吗?

    $array[] =  array(0,0,1);
    $array[] =  array(1,1,1);
    $array[] =  array(2,2,2);
    // etc...
    print_r($array);
    

    编辑

    $array[]['a1'] = array(1,1,1);
    $array[]['a2'] = array(2,2,2);
    $array[]['a3'] = array(3,3,3);
    // etc...
    print_r($array);
    

    【讨论】:

    • 对不起,但是,这不是我试图描述的,说你有 3 个数组 array(1,1,1);array(2,2,2);array(3,3,3); 我期待 $array[] = array(1,1,1,2,2,2,3,3,3);
    【解决方案3】:

    这就是你需要的

    $a = array(1,1,1);
    $b = array(2,2,2);
    $c = array(3,3,3);
    $value = array_merge($a,$b,$c);
    print_r($value);
    

    编辑

    $newArray = array();
    foreach($yourArray as $key => $value)
    {
      // I say if $value is an array that u want to  merge
      $arrayToMerge = $value;
      $newArray = array_merge($newArray,$arrayToMerge);
    }
    print_r($newArray);
    

    【讨论】:

    • $a,$b,$c 没有走到一起,它是一个循环。 $a 先出现,然后是 $b
    【解决方案4】:

    这解决了我的问题:

                    if (empty($castle_db[$j])) {
                        $castle_db[$j] = $castle_data_holder;
                    }
                    else {
                        $castle_db[$j] = array_merge($castle_db[$j],$castle_data_holder);
                    }
    

    如果不使用合并,它将检查数组是否为空。

    谢谢大家!

    【讨论】:

      猜你喜欢
      • 2020-01-06
      • 1970-01-01
      • 2021-09-07
      • 2021-12-30
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      相关资源
      最近更新 更多