创建包含多个子数组的主数组

问题描述 投票:-4回答:1

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

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

echo MainArray[1]->fname;

请参阅以下伪代码:

pseudo code

php
1个回答
0
投票

你应该真正研究一个基本的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 variable sigil是$。这意味着,为了访问变量或为变量赋值,可以使用$mainArray。在variables in the documentation上查看更多信息。

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

EG

$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,与大多数其他编程语言一样。请注意,关联数组中的键是一个字符串,因此必须用'"包围。

我可以推荐你search for a php beginner's tutorial并尝试自己编写和执行这些例子,以便更好地掌握php。如果你需要某个地方运行你的php示例,我可以建议你尝试在线php环境,如PHPFiddle

添加值的更新:

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

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

$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结构。

EG

$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'},
// ]
© www.soinside.com 2019 - 2024. All rights reserved.