如何将数组位置设置为变量以供后用途?

时间:2017-06-16 09:40:45

标签: php

我有一个像这样的数组:

array(
   'name' => 'array1',
   'content' => array(
       'name' => 'array2',
       'content' => array(
           'name' => 'array3',
           'content' => array(...)
       )
   )
)

我想在第三个数组中插入数据但不想输入这个长度:

$array['content']['content']['content']... = 'something';

因为我在不同的foreach内使用它会变得很长。

我尝试将数组分配给变量,如:

$array['content']['content']['content'] = array();
$content3 = $array['content']['content']['content'];

然后:

$content3['content4'] = 'something';

但是没有存储内容4',对此有任何解决方案吗?

1 个答案:

答案 0 :(得分:3)

使用& 将content3引用到$ array ['content'] ['content'] ['content']:

use yii\db\Expression;

    $messages = Messages::find()
        ->where([
            'file_downloaded' => 1,
        ])
        ->andWhere(['=', 'msg_sent', 0])
        ->andWhere(['=', 'file_size', new Expression('`downloaded_size`')])
        ->andWhere(['=', 'file_sha1', new Expression('`downloaded_sha1`')])
        ->asArray()
        ->all();

// to debug raw SQL I have used the following:
$query = = Messages::find()
            ->where([
                'file_downloaded' => 1,
            ])
            ->andWhere(['=', 'msg_sent', 0])
            ->andWhere(['=', 'file_size', new Expression('`downloaded_size`')])
            ->andWhere(['=', 'file_sha1', new Expression('`downloaded_sha1`')]);
echo var_dump($query->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql) . PHP_EOL;