如何将此数组放入多维数组?

时间:2014-04-17 05:43:56

标签: php arrays multidimensional-array

以下是我的代码

的一些示例
$data = array('code'=>'100','txt'=>'success');
$movie = array('name'=>'movie', array(array('id'=>'1','name'=>'movie1'),array('id'=>'2','name'=>'movie2')));
$anime = array('name'=>'anime', array(array('id'=>'1','name'=>'anime1'),array('id'=>'2','name'=>'anime2')));;

如何将$ movie和$ anime放入$ data ['数据']? 我尝试使用array_push和$data['data'] = array($movie,$anime); or $data['data'][] = array($movie,$anime);,但它没有用。

哦对不起我只想把它变成xml(我有将数组转换为xml的函数)

现在我使用$ data ['数据'] [' item'] [] =数组($ movie,$ anime);

所以这里是我的xml

<xml>
<data>
<item>[movie]</item>
<item>[anime]</item>
</data>
<xml>

我的问题是,是否有另一种方法可以将数据放入数据中?

3 个答案:

答案 0 :(得分:1)

有多种方法可以实现这一目标:

$data['data'] = array($movie, $anime]);

使用短数组语法,它更容易:

$data['data'] = [$movie, $anime];

如果你在循环中这样做,那么一次添加一个:

$data['data'] = array();
$data['data'][] = $movie;
$data['data'][] = $anime;

或者如果您想使用array_push()

$data['data'] = array();
array_push($data['data'], $movie);
array_push($data['data'], $anime);

Demo

答案 1 :(得分:1)

首先,您需要了解array_push的工作原理。它会将一个元素插入到数组的 end 中,并根据可用的最高数字键为其提供一个数字键。如果没有数字键(例如所有文本),则数字键将为零。

例如:

php > $a = array('b','c');
php > array_push($a, 'd');
php > print_r($a);
Array
(
    [0] => b
    [1] => c
    [2] => d
)

上例中的所有键都是字母,因为我们没有创建关联数组。但是如果我们创建一个关联数组,它将如下所示:

php > $b = array('a'=>'a');
php > array_push($b, 'c');
php > print_r($b);
Array
(
    [a] => a
    [0] => c
)

如果您在array_push数组上使用array_shift$data,则添加您要添加的数据,但没有关联数组索引,你可以参考,在这种情况下是'数据'。

要添加,您可以执行以下操作:

$data['data'] = array($movie, $anime);

答案 2 :(得分:0)

这取决于,您是否希望动画和电影数组都在主数组的一个键中,或者在单独的示例中:

$data['anime'] = $anime;
$data['move'] = $movie;

可以访问$ data [&#39;动漫&#39;] [&#39; name&#39;]; 等,或者你可以将它们都放在数据下,就像你的问题暗示的那样

$data['data'] = array($anime, $movie);

可以像电影数组的$ data [&#39;数据&#39;] [1] [&#39;名称&#39;]和动漫数组的0那样访问。