[英]Creating multidimensional array in php and slicing it for looping
我正在嘗試在 php 中創建一個簡單的多維數組,以便我可以對其進行切片(從數組中獲取 4 個項目),然后在其上循環,以便我可以一次顯示一個帶有名稱/編號的圖像。
現在的主要問題是我試圖在前端轉儲切片數組並獲得非法偏移錯誤。 我認為我的邏輯是正確的,但是我的數組的格式不正確嗎?
$urls = array(
[0] => array(
"url" => '123.jpg',
"name" => 'Cat_123',
"number" => 123,
),
[1] => array(
"url" => '265.jpg',
"name" => 'Cat_265',
"number" => 265
),
[2] => array(
"url" => '121.jpg',
"name" => 'Cat_121',
"number" => 121,
),
[3] => array(
"url" => '245.jpg',
"name" => 'Cat_245',
"number" => 245,
),
[4] => array(
"url" => '4445.jpg',
"name" => 'Cat_4445',
"number" => 4445,
),
[5] => array(
"url" => '3332.jpg',
"name" => 'Cat_3332',
"number" => 3332,
),
);
$multid_array = array($urls);
$sliced_array = array();
foreach ($multid_array as $sub_array) {
$sliced_array[] = array_slice($sub_array, 0, 4);
}
從索引號中刪除[
, ]
。 還顯示了array_slice()
的替代方法。
$urls = array(
0 => array(
"url" => '123.jpg',
"name" => 'Cat_123',
"number" => 123,
),
1 => array(
"url" => '265.jpg',
"name" => 'Cat_265',
"number" => 265
),
2 => array(
"url" => '121.jpg',
"name" => 'Cat_121',
"number" => 121,
),
3 => array(
"url" => '245.jpg',
"name" => 'Cat_245',
"number" => 245,
),
4 => array(
"url" => '4445.jpg',
"name" => 'Cat_4445',
"number" => 4445,
),
5 => array(
"url" => '3332.jpg',
"name" => 'Cat_3332',
"number" => 3332,
),
);
foreach ($urls as $k => $v) {
if ($k < 4) $sliced_array[] = $v;
}
echo '<pre>'.print_r($sliced_array, 1).'</pre>';
提取數組的一部分。 獲得 4 件物品。 無需循環。 注意創建數組的語法:
$urls = array(
array(
"url" => '123.jpg',
"name" => 'Cat_123',
"number" => 123,
),
array(
"url" => '265.jpg',
"name" => 'Cat_265',
"number" => 265
),
array(
"url" => '121.jpg',
"name" => 'Cat_121',
"number" => 121,
),
array(
"url" => '245.jpg',
"name" => 'Cat_245',
"number" => 245,
),
array(
"url" => '4445.jpg',
"name" => 'Cat_4445',
"number" => 4445,
),
array(
"url" => '3332.jpg',
"name" => 'Cat_3332',
"number" => 3332,
),
);
$sliced_array = array_slice($urls, 0, 4);
var_dump($sliced_array);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.