我有字体数组,例如名称和重量。
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"在最终阵列中有一个不同的"权重"然后只有"重量"应该加上" Open + Sans" key ..预期结果应该是这样的:
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
}
}
任何帮助或想法都将受到高度赞赏。欢呼声
答案 0 :(得分:0)
首先
<?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);
?>
答案 1 :(得分:0)
看起来像这样的结构对你有用:
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;
}
答案 2 :(得分:0)
您只是想将$ fontarray1添加到$ final_arr?
$final_arr[] = $fontarray1
创建多维数组:
$theArray = array();
$theArray[] = array('key1'=>'val1', 'key2'=>'val2'); // creates a subarray