php - 创建包含多个子数组的主数组
问题描述
如何创建一个包含多个子数组的主数组并采用 Jason 的形式,我想将子数组添加到循环中的主数组
MainArray=[
array1=[{fname:asdada,lastname:sdsadasda}];
array2=[{fname:asdada,lastname:sdsadasda}];
array3=[{fname:asdada,lastname:sdsadasda}];
];
echo MainArray[1]->fname;
请看下面的伪代码:
解决方案
你真的应该研究一个基本的 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');
如果您想在循环中执行此操作,您将使用for、foreach、while或do 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'},
// ]
推荐阅读
- xcode - 如何在 iOS XCode 11.4 的模拟器中测试 FCM 推送通知?
- javascript - 将元素设置在另一个元素之下并删除当前放置元素
- prestashop - 如何快速找出 PrestaShop 网站是 1.6 版还是 1.7.x 版?
- javascript - JS 找不到 HTML 选择
- django - 模型中字段中每个项目的选择
- kotlin - 当 setOnTouchListener 在 kotlin 中工作时 setOnClickListener 不工作
- c++ - 使用返回对象的函数处理错误
- java - 为什么从 int 到 char 的隐式类型转换没有给我错误?
- tableau-api - 如何使用 Tableau 中的计算字段复制运行总表计算?
- c - 使用 realloc 函数时出现内存损坏