php关联数组数组-添加键/值、检查键是否存在、向值数组添加值
我不熟悉PHP关联数组,所以我希望有人能对这个主题有所了解,并建议如何解决我的特定问题 我有一个数据数组,其中每个元素都是由“php关联数组数组-添加键/值、检查键是否存在、向值数组添加值,php,arrays,Php,Arrays,我不熟悉PHP关联数组,所以我希望有人能对这个主题有所了解,并建议如何解决我的特定问题 我有一个数据数组,其中每个元素都是由“Month,Year”组成的字符串。 我想解析这些数据并创建一个关联数组,其中键是年份,值是该年月份的数组 例如,我有数组(“2011年11月”、“2011年5月”、“2010年7月”) 使用foreach循环,我希望解析此数据并创建数组: array( "2011" => array("Novemeber", "May"), "2010" => array(
Month,Year
”组成的字符串。
我想解析这些数据并创建一个关联数组,其中键是年份,值是该年月份的数组
例如,我有数组(“2011年11月”、“2011年5月”、“2010年7月”)
使用foreach循环,我希望解析此数据并创建数组:
array( "2011" => array("Novemeber", "May"), "2010" => array("July"))
从我所看到的,我需要知道如何检查一个键是否存在,如果它没有创建它,并创建一个新数组作为它的值,如果是,将月份附加到已经存在的值数组中
如果这是有意义的,任何帮助将不胜感激!谢谢 试试这个(编辑第二遍,忘记关键字数组
,添加修剪):
<?php
$initialArray = array("November, 2011", "May, 2011", "July, 2010");
$finalArray = array();
foreach($initialArray as $value)
{
// Note: I suppose here that each initialArray element is "<Month>, <Year>",
// otherwise the following line may trigger errors.
list($month, $year) = array_map('trim', explode(",", $value));
if (!isset($finalArray[$year]))
$finalArray[$year] = array();
$finalArray[$year][] = $month;
}
// orders years, however months arrays below years won't be ordered.
ksort($finalArray);
输出:
print_r($outarr);
Array
(
[ 2011] => Array
(
[0] => November
[1] => May
)
[ 2010] => Array
(
[0] => July
)
)
好的,让我们试试这个:
<?php
$my_array = array('November, 2011', 'May, 2011', 'July, 2010');
$final = array();
foreach($my_array as $item) {
// Let's split the Month and Year
$item = explode(', ', $item);
$final[$item[1]][] = $item[0];
}
print_r($final);
?>
“关联”数组,只是为了吹毛求疵。我认为空格应该至少在一年左右(而不是一个月)进行修剪。第一行的语法错误+atrim()
应该应用于一年keys@FrostyZ:哈哈,谢谢。忘记关键字array
,这是我不用测试就能得到的。
print_r($outarr);
Array
(
[ 2011] => Array
(
[0] => November
[1] => May
)
[ 2010] => Array
(
[0] => July
)
)
<?php
$my_array = array('November, 2011', 'May, 2011', 'July, 2010');
$final = array();
foreach($my_array as $item) {
// Let's split the Month and Year
$item = explode(', ', $item);
$final[$item[1]][] = $item[0];
}
print_r($final);
?>
Array
(
[2011] => Array
(
[0] => November
[1] => May
)
[2010] => Array
(
[0] => July
)
)