Php 从多维数组返回特定值
我有这个数组($myArray): 然后我将其分为几块:Php 从多维数组返回特定值,php,arrays,Php,Arrays,我有这个数组($myArray): 然后我将其分为几块: $chunks = array_chunk($myArray, 3); 这就给我留下了多维数组输出($chunks): 然后我需要填充另一个数组($myInsert),如下所示: 总而言之,我想循环遍历数组的每个块,并将该块中的每个值写入另一个数组 我的问题:如何从多维数组中提取特定值? 解决方案: <?php $myArray = array("a", "b", "c", "d", "e", "f", "g", "h", "i
$chunks = array_chunk($myArray, 3);
这就给我留下了多维数组输出($chunks):
然后我需要填充另一个数组($myInsert),如下所示:
总而言之,我想循环遍历数组的每个块,并将该块中的每个值写入另一个数组
我的问题:如何从多维数组中提取特定值?
解决方案:
<?php
$myArray = array("a", "b", "c", "d", "e", "f", "g", "h", "i");
$myInsert = array(
'something1' => "CAT",
'something2' => "HAT",
'something3' => "BAT"
);
$chunks = array_chunk($myArray, 3);
foreach ($chunks as $i => $chunk)
{
list($sku, $name, $img) = $chunk;
$x = $i + 1;
$myInsert["sku{$x}_sku"] = $sku;
$myInsert["sku{$x}_name"] = $name;
$myInsert["sku{$x}_img"] = $img;
}
print_r($myInsert);
?>
array (
'something1' => 'CAT',
'something2' => 'HAT',
'something3' => 'BAT',
'sku1_sku' => 'a',
'sku1_name' => 'b',
'sku1_img' => 'c',
'sku2_sku' => 'd',
'sku2_name' => 'e',
'sku2_img' => 'f',
'sku3_sku' => 'g',
'sku3_name' => 'h',
'sku3_img' => 'i',
)
您只需一次访问所有元素:
$myInsert = array();
foreach ($chunks as $i => $chunk)
{
list($chunk_sku, $chunk_name, $chunk_img) = $chunk;
$myInsert["sku{$i}_sku"] = $chunk_sku;
$myInsert["sku{$i}_name"] = $chunk_name;
$myInsert["sku{$i}_img"] = $chunk_img;
}
通过list()学到了一些新的东西,但遗憾的是,这不是我想要的。我希望$varCAT、$varBAT和$varHAT从数组返回特定的值,在我的示例“d”、“e”和“f”中。这三个值是“第二”块的一部分。@Crayons你能简单地访问第二块吗?i、 e.使用
$chunk=$chunks[1]代码>。我可以,但那不是我想要的。对不起,我想我只是在这个问题上做得不好。这个分块数组是一个产品数组。阵列中的产品(块)数量各不相同。这些产品必须插入到单个数据库行中。我将属于每一列的内容组合到一个单独的数组($myInsert)中。因此,我需要循环遍历$myArray中的每个块,然后将每个值分配给$myInsert数组中的特定值。@Crayons您能否提供一个示例,说明$chunks
中的内容以及预期的输出是什么?您似乎引用了$myArray
和$myInsert
,但这在您的代码中并不存在。谢谢!我不知道您可以像那样直接将项插入数组($myArray[]=blah)。原始发布更新以显示解决方案。谢谢mc10!问题是您有一个数组。您的第一个循环将给您留下几次数组传递。第二个循环将留给您一个值。你似乎觉得你有多个价值观,但你没有。请参阅@mc10的答案->这里只有一个foreach,这是合乎逻辑的。如果您需要多个循环,那么您需要处理一个元素的代码,而不是多个元素的代码。第一个循环遍历数组的每个块。第二个循环,然后迭代该块中的每个key:value对,这实际上给我留下了多个值。无论如何,我看到你接受了一个不需要第二个循环的答案:这是我的观点:)你完全正确。你的建议完全出乎我的意料。谢谢你抽出时间!
<?php
$myArray = array("a", "b", "c", "d", "e", "f", "g", "h", "i");
$myInsert = array(
'something1' => "CAT",
'something2' => "HAT",
'something3' => "BAT"
);
$chunks = array_chunk($myArray, 3);
foreach ($chunks as $i => $chunk)
{
list($sku, $name, $img) = $chunk;
$x = $i + 1;
$myInsert["sku{$x}_sku"] = $sku;
$myInsert["sku{$x}_name"] = $name;
$myInsert["sku{$x}_img"] = $img;
}
print_r($myInsert);
?>
array (
'something1' => 'CAT',
'something2' => 'HAT',
'something3' => 'BAT',
'sku1_sku' => 'a',
'sku1_name' => 'b',
'sku1_img' => 'c',
'sku2_sku' => 'd',
'sku2_name' => 'e',
'sku2_img' => 'f',
'sku3_sku' => 'g',
'sku3_name' => 'h',
'sku3_img' => 'i',
)
$myInsert = array();
foreach ($chunks as $i => $chunk)
{
list($chunk_sku, $chunk_name, $chunk_img) = $chunk;
$myInsert["sku{$i}_sku"] = $chunk_sku;
$myInsert["sku{$i}_name"] = $chunk_name;
$myInsert["sku{$i}_img"] = $chunk_img;
}