PHP 中同时包含标量和向量的数组

Array of scalars and vectors at the same time in PHP

我必须在 PHP 中创建以下“结构”的 数组

user_id,array(item_id,flag,array(feedback_message_id))

基本上,对于每个 user_id,都有一个 数组 (item_id,标志 ,和一个 数组 feedback_messages)..

在“类”table 中,我有一个名为“users”的字段,用于保存带分隔符的数据。数据示例如下: |1-5-1-1~2~5|2-3-4-5~6~7|......

我需要将数据放入数组中,如下所示:

$myArray[0][0]="1";       // the first user's user_id = 0
$myArray[0][1][0]="5";    // the first user's first item's id = 5
$myArray[0][1][1]="1";    // the first user's first item's flag = 0
$myArray[0][1][2][0]="1"; // the first user's first item's first feedback message's id = 1
$myArray[0][1][2][1]="2"; // the first user's first item's second feedback message's id = 2
$myArray[0][1][2][2]="5"; // the first user's first item's third feedback message's id = 3

我不知道如何创建这样的数组以及如何从中检索数据(语法方面)...我使用过一维数组和多维数组,但这是一个部分双向数组维,部分三维和四维...这可能吗?

我想通了!!

问题是在输入值时创建数组,而不是事先创建一个空结构:

$myArray=array(array("user1",array("item2","YES",array ("f1","f2","f3"))));

然后,我可以回忆起,例如,“f2”和 $myArray[0][1][2][1];

因此,我将使用 PHP explode 创建一个函数,以从我的“类”table 的“用户”字段中读取带分隔符的数据,并将其插入到此数组。

感谢 AbraCadaver 在我从 DB 中读取数据时提示我创建数组!!!直到现在,1 小时后,它才为我点击 :)

祝一切顺利!! 奥维

在您的例子中,数组 $a 代表单个用户,因此获取如下数据:

$a=array( "user1", array( "item2", "DA", array ( "f1","f2","f3" ) ) );
$user = $a[1][2][1]; //f2

通常情况下应该是用户数组:

<?php
$a = array( "user1", array( "item2", "DA", array ( "f1","f2","f3" ) ) ); 

var_export($a[1][2][1]);


$users = [
    ["user1", ["item2", "DA", [ "f1","f2","f3" ] ] ]
];

echo PHP_EOL . PHP_EOL ."user" . PHP_EOL;
$user = $users[0];

var_export($user);

echo PHP_EOL . PHP_EOL ."user item" . PHP_EOL . PHP_EOL;

$user_item = $users[0][1][0];

var_export($user_item);

echo PHP_EOL . PHP_EOL ."user flag" . PHP_EOL . PHP_EOL;

$user_flag = $users[0][1][1];

var_export($user_flag);

echo PHP_EOL . PHP_EOL ."user feedbacks" . PHP_EOL . PHP_EOL;

$user_flag = $users[0][1][2];

var_export($user_flag);


echo PHP_EOL . PHP_EOL ."user second feedbacks" . PHP_EOL . PHP_EOL;

$user_flag = $users[0][1][2][1];

var_export($user_flag);

share PHP code