php合并/推送数组到其他数组中

php合并/推送数组到其他数组中,php,Php,我就是不能把这件相当简单的事情做好 我创建了许多这样的阵列: foreach( $terms as $term ){ $single_attribute = array(); $archive_link = get_term_link( $term->slug, $attribute['name'] ); array_push( $single_attribute, $term->name, $archive_link); } $attributes = array()

我就是不能把这件相当简单的事情做好

我创建了许多这样的阵列:

foreach( $terms as $term ){
  $single_attribute = array();
  $archive_link = get_term_link( $term->slug, $attribute['name'] );
  array_push( $single_attribute, $term->name, $archive_link);
}
$attributes = array();
foreach($terms as $term) {
    $archive_link = get_term_link($term->slug, $attribute['name']);
    $attributes[] = array($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 ))
我需要将这些数组中的每一个推/合并(此处不确定是否正确命名)到一个大数组中,以便最终结果如下:

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 ))

$single_属性
在每次使用空数组的迭代中定义。在循环外部定义数组

$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) );                                                                                      
}

$single_属性
在每次使用空数组的迭代中定义。在循环外部定义数组

$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) );                                                                                      
}

如果不使用
阵列推送
,一个更优雅的解决方案是:

    foreach( $terms as $term ){
      $archive_link = get_term_link( $term->slug, $attribute['name'] );
      $single_attribute[] = array($term->name, $archive_link) );
    }

$final_array[] = $single_attribute;

这将为您提供预期的输出。

一个更优雅的解决方案,无需使用
数组\u 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;
这将为您提供预期的输出。

根据,您不应使用
array\u push()
执行此任务:

注意:如果使用array_push()将一个元素添加到数组中,则它是 最好使用$array[]=因为这样就不会有额外的开销 调用函数

这样做:

foreach( $terms as $term ){
  $single_attribute = array();
  $archive_link = get_term_link( $term->slug, $attribute['name'] );
  array_push( $single_attribute, $term->name, $archive_link);
}
$attributes = array();
foreach($terms as $term) {
    $archive_link = get_term_link($term->slug, $attribute['name']);
    $attributes[] = array($term->name, $archive_link);
}
根据,此任务不应使用
array\u push()

注意:如果使用array_push()将一个元素添加到数组中,则它是 最好使用$array[]=因为这样就不会有额外的开销 调用函数

这样做:

foreach( $terms as $term ){
  $single_attribute = array();
  $archive_link = get_term_link( $term->slug, $attribute['name'] );
  array_push( $single_attribute, $term->name, $archive_link);
}
$attributes = array();
foreach($terms as $term) {
    $archive_link = get_term_link($term->slug, $attribute['name']);
    $attributes[] = array($term->name, $archive_link);
}