[英]Handling multi-dimensional PHP Array
我有其名称和粗细的字体数组,例如
print_r($fontarray1);
Array (
[font] => Open+Sans
[weight] => normal
)
print_r($fontarray2);
Array (
[font] => Open+Sans
[weight] => bold
)
print_r($fontarray3);
Array (
[font] => Lato
[weight] => bolditalic
)
我有许多字体数组$ fontarray1,$ fontarray2,$ fontarray3 ..我想制作一个最终的字体数组及其权重..例如,如果“ Open + Sans”已经在最终数组中,则不应添加,但是如果“ Open + Sans”在最终数组中具有不同的“ weight”,则仅应将“ weight”与“ Open + Sans”键一起添加..预期结果应为:
Array (
[font] => Oen+Sans
[weight] => Array (
[0] => normal
[1] =>bold
)
[font] => Lato
[weight] => Array (
[0] => bolditalic
)
)
我尝试过类似下面的操作,但是对于如何在一个数组中添加另一个数组感到困惑。
$final_arr = Array();
if (!in_array($fontarray1['font'], $final_arr)) {
$final_arr []= $fontarray1['font'];
} else {
// already in array, lets check font weight
}
}
任何帮助或想法将不胜感激。 干杯
第一
<?php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array)$beginning, (array)$end);
print_r($result);
?>
第二
<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>
看起来像这样的结构可能对您有用:
Array(
"fontName" => Array(
[weight] => Array(
[0] => "normal"
)
)
)
你的功能就像
$final_arr = Array();
$fontName = $fontarray1['font'];
$fontWeight = $fontarray1['weight'];
if (!isset($final_arr[$fontName])) {
$final_arr[$fontName] = array('weight' => $fontWeight);
} else {
$final_arr[$fontName]['weight'][] = $fontWeight;
}
您只是想将$ fontarray1添加到$ final_arr?
$final_arr[] = $fontarray1
创建多维数组:
$theArray = array();
$theArray[] = array('key1'=>'val1', 'key2'=>'val2'); // creates a subarray
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.