首页 > 解决方案 > 创建包含多个子数组的主数组

问题描述

如何创建一个包含多个子数组的主数组并采用 Jason 的形式,我想将子数组添加到循环中的主数组

    MainArray=[
    array1=[{fname:asdada,lastname:sdsadasda}];
    array2=[{fname:asdada,lastname:sdsadasda}];
    array3=[{fname:asdada,lastname:sdsadasda}];
    ];

echo MainArray[1]->fname;

请看下面的伪代码:

伪代码

标签: php

解决方案


你真的应该研究一个基本的 php 教程。

这就是你的做法。

$mainArray = [
  'array1' => ['fname' => 'asdada', 'lastname' => 'sdsadasda'],
  'array2' => ['fname' => 'asdada', 'lastname' => 'sdsadasda'],
  'array3' => ['fname' => 'asdada', 'lastname' => 'sdsadasda']
];
echo $mainArray['array1']['fname'];

或者,如果您有旧版本的 php 或想要向后兼容,请使用长符号。

$mainArray = array(
  'array1' => array('fname' => 'foo', 'lastname' => 'bar'),
  'array2' => array('fname' => 'lorem', 'lastname' => 'ipsum'),
  'array3' => array('fname' => 'test', 'lastname' => 'example')
);
echo $mainArray['array1']['fname'];

解释:

php变量sigil 是$. 这意味着为了访问变量或将某些内容分配给变量,您使用$mainArray. 请参阅文档中有关变量的更多信息。

php 数组可以以两种不同的表示法使用。或者array(...),从php 5.4开始,[...]. 除了打开和关闭部分之外,它们是相同的。您不会在数组声明中使用:或分配单个值。=为此,您使用=>运算符。数组中的每个元素都用逗号 ( ,) 分隔。

例如

$mainArray = array(
    'A' => 1,
    'B' => 2
];

Php 中的数组可以是关联的,也可以是数字的。您可能想要的是您的外部数组是数字的,这意味着您可以使用 访问它$mainArray[1],而您的内部数组是关联的。对于数值数组,您不需要自己指定键,因此不需要=>.

$mainArray = array(
    array(),
    array(),
    array()
);

使用关联子数组,这变成:

$mainArray = array(
    array('firstname' => 'foo', 'lastname' => 'bar'),
    array('firstname' => 'test', 'lastname' => 'example'),
    array('firstname' => 'lorem', 'lastname' => 'ipsum')
);

为了访问此firstname级数组结构中第一个子数组的键,您可以:

$mainArray[0]['firstname']

例如(如果您想将其回显到标准输出)

echo $mainArray[0]['firstname'];

请注意,与大多数其他编程语言一样,php 中的数字数组从 0 开始计数。请注意,关联数组中的键是一个字符串,因此必须用'or包围"

我可以建议你搜索一个 php 初学者教程,并尝试自己编写和执行示例,以更好地掌握 php。如果您需要在某个地方运行您的 php 示例,我可以建议您尝试使用在线 php 环境,例如PHPFiddle

添加值的更新:

您可以向关联数组添加更多 key=>value 对,或者随后以与访问或分配给它的方式大致相同的方式向数字数组添加更多值。

首先,让我们向数值数组添加一个值。您可以通过[]在分配时添加到变量的末尾来做到这一点。这意味着您分配的内容将作为新数值添加到数组的末尾。

$numericalArray = array(
    7,
    8,
    6,
    12,
    'B'
);
$numericalArray[] = 'C';
// Results in the array: array(7, 8, 6, 12, 'B', 'C')

为了向key => value关联数组添加一个新对,您只需使用新键添加它,例如

$assoc = array(
    'firstname' => 'Testy',
    'lastname' => 'McTestface'
);
$assoc['middlename'] => 'Tester';

因此,要向 mainArray 添加一个新的 fname-lastname 对,您可以:

$mainArray = array(
    array('fname' => 'foo', 'lastname' => 'bar'),
    array('fname' => 'test', 'lastname' => 'example'),
    array('fname' => 'lorem', 'lastname' => 'ipsum')
);
$mainArray[] = array('fname' => 'new name', 'lastname' => 'new last name');

如果您想在循环中执行此操作,您将使用forforeachwhiledo while结构。

例如

$mainArray = array(
    array('fname' => 'foo', 'lastname' => 'bar'),
    array('fname' => 'test', 'lastname' => 'example'),
    array('fname' => 'lorem', 'lastname' => 'ipsum')
);
for ($i = 0; $i < 3; ++$i) {
    $mainArray[] = array('fname' => 'new name ' . $i, 'lastname' => 'new last name ' . $i);
}
echo json_encode($mainArray, JSON_PRETTY_PRINT|JSON_UNESPACED_UNICODE|JSON_UNESCAPED_SLASHES), PHP_EOL;
// [
//   {'fname': 'foo', 'lastname': 'bar'},
//   {'fname': 'test', 'lastname': 'example'},
//   {'fname': 'lorem', 'lastname': 'ipsum'},
//   {'fname': 'new name 0', 'lastname': 'new last name 0'},
//   {'fname': 'new name 1', 'lastname': 'new last name 1'},
//   {'fname': 'new name 2', 'lastname': 'new last name 2'},
// ]

推荐阅读