【问题标题】:Array of scalars and vectors at the same time in PHPPHP中同时包含标量和向量的数组
【发布时间】:2021-05-17 04:19:21
【问题描述】:

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

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

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

在“类”表中,我有一个名为“用户”的字段,其中包含带有分隔符的数据。数据示例如下: |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

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

【问题讨论】:

  • 在从数据库查询中读取行时创建数组。显示您的查询。
  • 非常感谢您的回答!!在数据库中,我将有一个文本字段,其中包含所有带分隔符的数据(用户之间的“|”,项目之间的“-”,项目属性之间的“~”和反馈消息之间的“,”)。该字段应如下所示:|userid-itemid~flag~fdbid1,fdbid2,fdbid3...|nextuser....等等。我将使用 PHP 的 explode 函数来阅读这篇文章,并希望将所有内容都放在结构的数组中。我的 SQL 查询只是一个 SELECT * from,其中一个字段是带有反馈项的用户列表...
  • 编辑问题并展示一个例子。
  • 列表是这个带分隔符的数据块
  • 我的问题是创建这样一个数组的语法......

标签: php arrays vector multidimensional-array scalar


【解决方案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

【讨论】:

  • 非常感谢!!你完全明白我需要什么! :) 它比我的解决方案更优雅。谢谢!!不过,我不能为你的答案投票,因为我的声誉不到 15 分钟。
  • 现在我看到了复选图标 :) 我接受了。再次非常感谢你!!! :)
【解决方案2】:

我想通了!!

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

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

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

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

感谢 AbraCadaver 在我从数据库中读取数据时提示我创建数组!!!!只是现在,1 小时后,它为我点击了 :)

一切顺利!! 奥维

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多