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);
我必须在 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);