我想在函数内部创建多维数组,然后在函数外部访问它。现在我有这个功能:
function custom_shop_array_create($product, $counter){
$product_id = get_the_ID();
$product_title = get_the_title($product_id);
$products_arr[]['id'] = $product_id;
$products_arr[]['title'] = $product_title;
$products_arr[]['price'] = $product->get_price();
$products_arr[]['image'] = get_the_post_thumbnail($product_id, 'product-list-thumb', array('class' => 'product-thumbnail', 'title' => $product_title));
return $products_arr;
}
并在此代码中调用:
$products_arr = array();
if ( $products->have_posts() ) : while ( $products->have_posts() ) : $products->the_post();
custom_shop_array_create($product);
endwhile;
endif;
问题是我无法访问$products_arr
。我尝试用custom_shop_array_create($product);
替换$my_array[] = custom_shop_array_create($product);
但我得到了3维数组。那么有没有办法得到如下所示的二维数组:
product 1 (id,title,price,image)
product 2 (id,title,price,image) etc.
在功能之外。
先谢谢
答案 0 :(得分:1)
不确定。让函数返回最终数组的行并自行添加:
function custom_shop_array_create($product, $counter){
$product_id = get_the_ID();
$product_title = get_the_title($product_id);
return [
'id' => $product_id,
'title' => $product_title,
// etc
];
}
然后:
$products_arr = array();
if ( $products->have_posts() ) :
while ( $products->have_posts() ) :
$products->the_post();
$products_arr[] = custom_shop_array_create($product);
endwhile;
endif;
那就是说,while
循环中发生了一些奇怪的事情。 $products->the_post()
做了什么? $product
来自哪里?