首页 > 解决方案 > PHP插入数组关联 - 我想向关联数组中的现有数组插入一个值

问题描述

我有问题如何将值插入现有数组,我的结果是:

Array
(
    [id] => 11
    [title] => Lorem ipsum
    [view] => 3445
)

但我所做的是:

<?php

$newVideo = [
    'id'=>'11',
    'title'=>'Lorem ipsum'            
];

$view = '3445';

$newVideo[] = ['view'=>$view];

print_r($newVideo);

我的结果是:

Array
(
    [id] => 11
    [title] => Lorem ipsum
    [0] => Array
        (
            [view] => 3445
        )

)

更新问题:在我的情况下,我在每个 foreach 中都有复杂的 foreach 我想将值存储到变量数组中,如下所示:

$newVideo = array();
foreach ($videos['items'] as $v){
    $id = $v['snippet']['resourceId']['videoId'];
    $title = $v['snippet']['title'];

    $newVideo[] = [ "id" => $id ,"title" => $title];

$newVideo 有 ['id'] 和 ['title'] 并且我也想存储 ['view'],但是我必须先 foreach 函数才能从 ['id'] 获取视图数据,所以我的代码获取视图的 foreach 函数就像:

$funcvid = array();
foreach($newVideo as $id){

    $ids = $id['id'];

    $vidview = YtJson('apilink', $ids, '');
    array_push($funcvid, $vidview);
}

我得到了视频统计信息,所以我可以从该函数中获取视图数据,所以我再次 foreach 以使用以下代码存储视图数据值:

foreach($funcvid as $f){
    foreach ($f['items'] as $h){
        $view = $h['statistics']['viewCount'];
}
    $newVideo['view'] = $view;
}

但是对于最后一个 foreach 我无法将值存储到 $newVideo['view'],它不会丢失,如果数组是二维的,我会成功,但我的 expetation 是数组是一维的

标签: phparraysjsonwebassociative

解决方案


$newVideo是一个二维数组。您需要索引第一个维度才能到达关联内部数组。

foreach($funcvid as $i => $f){
    foreach ($f['items'] as $h){
        $view = $h['statistics']['viewCount'];
    }
    $newVideo[$i]['view'] = $view;
}

但是您不需要 3 个不同的循环,您可以在一个循环中完成所有操作。

<?php
$newVideo = array();
foreach ($videos['items'] as $v){
    $id = $v['snippet']['resourceId']['videoId'];
    $title = $v['snippet']['title'];
    $vidview = YtJson('apilink', $ids, '');
    foreach ($vidview['items'] as $h) {
        $view = $h['statistics']['viewCount'];
    }
    $newVideo[] = [ "id" => $id ,"title" => $title, 'view' => $view];
}

推荐阅读