将数组分配给另一个数组值

时间:2016-11-02 15:50:59

标签: php arrays loops multidimensional-array associative-array

假设我有array

$first = ['hi', 'by', 'nice']

我要为这个数组项分配另一个数组。实际上做一个foreach循环并且由于情况将一个新数组分配给所需的数组项。 现在我想把它转到这个:

$second = ['hi', 'by' => ['really' => 'yes'], 'nice']

我如何以编程方式完成?

4 个答案:

答案 0 :(得分:0)

试试这个

$first = ['hi', 'by', 'nice'];

foreach( $first as $key => $value )
{
    $second[] = $value;
    if( $value == 'by' )
    {
        $second[ $value ][] = array( 'really' => 'yes' );
    }
}
var_dump( $second );

输出:

array(4) {
  [0]=>
  string(2) "hi"
  [1]=>
  string(2) "by"
  ["by"]=>
  array(1) {
    [0]=>
    array(1) {
      ["really"]=>
      string(3) "yes"
    }
  }
  [2]=>
  string(4) "nice"
}

答案 1 :(得分:0)

试试这个:

$second = $first;
$tofind = 'by';
$key = array_search($tofind, $second);
unset($second[$key]);
$second[$tofind] = array( 'really' => 'yes' );

答案 2 :(得分:0)

这非常重要,如果已知索引<?php $first = ['hi', 'by', 'nice']; $newArr = array(); foreach ($first as $key => $value) { if($value == 'by'){ $newArr[$value] = array('really'=>'yes'); } else{ $newArr[] = $value; } } echo "<pre>"; print_r($newArr); ?> ,则可以使用此索引检查并将值存储到新数组中,否则会失败。

这是基本的例子:

Array
(
    [0] => hi
    [by] => Array
        (
            [really] => yes
        )

    [1] => nice
)

<强>结果:

public enum EleType {
    INTEGER, 
    CHARACTER
}

答案 3 :(得分:0)

如果我了解您的要求,实际上有很多方法可以做到这一点。这是我的,

<?php
$first = ['hi', 'by', 'nice'];
foreach($first as $k=>$v){
    if($v !='by'){
        $second[] = $v;
    }else{
        $second[$v] = ['really'=>'yes'];
    }
}
print_r($second);
?>