我不能把这件事当成简单的事。
我创建了许多这样的数组:
foreach( $terms as $term ){
$single_attribute = array();
$archive_link = get_term_link( $term->slug, $attribute['name'] );
array_push( $single_attribute, $term->name, $archive_link);
}
生成许多数组如下:
Array ( [0] => attribute_1 [1] => http://domain.com/products/attribute_1/ )
我需要将这些数组中的每个数组推送/合并(不确定这里的正确命名)为一个大数组,以便最终结果如下:
Array ( [0] => Array ( [0] => attribute_1 [1] => http://domain.com/products/attribute_1 ) [1] => Array ( [0] => attribute_2 [1] => http://domain.com/products/attribute_2 ))
答案 0 :(得分:2)
$single_attribute
。在循环外定义数组。
$single_attribute = array();
foreach( $terms as $term ){
$archive_link = get_term_link( $term->slug, $attribute['name'] );
array_push( $single_attribute, array($term->name, $archive_link) );
}
答案 1 :(得分:1)
不使用array_push
的更优雅的解决方案是:
foreach( $terms as $term ){
$archive_link = get_term_link( $term->slug, $attribute['name'] );
$single_attribute[] = array($term->name, $archive_link) );
}
$final_array[] = $single_attribute;
哪会给你预期的输出。
答案 2 :(得分:0)
根据documentation,您不应使用array_push()
执行此任务:
注意:如果使用array_push()将一个元素添加到数组中 最好使用$ array [] =因为这样就没有开销了 调用函数。
做这样的事情:
$attributes = array();
foreach($terms as $term) {
$archive_link = get_term_link($term->slug, $attribute['name']);
$attributes[] = array($term->name, $archive_link);
}