Hướng dẫn create multidimensional array php foreach - tạo mảng đa chiều php foreach

Tôi đang cố gắng tạo ra một mảng đa chiều trong PHP bằng cách sử dụng một vòng lặp foreach. Đây là mã cho đến nay:

$levels = array['low', 'medium', 'high'];
$attributes = array['fat', 'quantity', 'ratio', 'label'];

foreach [$levels as $key => $level]:
       foreach [$attributes as $k =>$attribute]:
             $variables[] = $attribute . '_' . $level;
       endforeach;
endforeach;

echo '
' . print_r[$levels,1] . '
'; echo '
' . print_r[$variables,1] . '
';

Đầu ra từ mã này là một mảng thứ nguyên duy nhất; Tuy nhiên, đó không phải là ý định. Mảng mong muốn sẽ trông như thế này:

Làm thế nào mã nên được sửa đổi để đạt được mục tiêu?

Hỏi ngày 8 tháng 8 năm 2013 lúc 20:39Aug 8, 2013 at 20:39

1

Bạn đang ở đó. Chỉ cần thêm cấp độ vào sáng tạo mảng :]

$levels = array['low', 'medium', 'high'];
$attributes = array['fat', 'quantity', 'ratio', 'label'];

foreach [$levels as $key => $level]:
       foreach [$attributes as $k =>$attribute]:
             $variables[$level][] = $attribute . '_' . $level; // changed $variables[] to $variables[$level][]
       endforeach;
endforeach;

echo '
' . print_r[$levels,1] . '
'; echo '
' . print_r[$variables,1] . '
';

Đầu ra

Array
[
    [low] => Array
        [
            [0] => fat_low
            [1] => quantity_low
            [2] => ratio_low
            [3] => label_low
        ]

    [medium] => Array
        [
            [0] => fat_medium
            [1] => quantity_medium
            [2] => ratio_medium
            [3] => label_medium
        ]

    [high] => Array
        [
            [0] => fat_high
            [1] => quantity_high
            [2] => ratio_high
            [3] => label_high
        ]

]

Đã trả lời ngày 8 tháng 8 năm 2013 lúc 20:42Aug 8, 2013 at 20:42

JimljimlJimL

2.4711 Huy hiệu vàng18 Huy hiệu bạc19 Huy hiệu đồng1 gold badge18 silver badges19 bronze badges

1

$levels = ['low', 'medium', 'high'];
$attributes = ['fat', 'quantity', 'ratio', 'label'];

$result = [];
foreach [$levels as $level] {
    $result[$level] = [];
    foreach [$attributes as $attribute] {
        $result[$level][] = $attribute . '_' . $level;
    }
}

var_dump[$result];

Đã trả lời ngày 8 tháng 8 năm 2013 lúc 20:44Aug 8, 2013 at 20:44

Tomasz Kowalchotomasz KowalchotTomasz Kowalczyk

10,4K6 Huy hiệu vàng55 Huy hiệu bạc67 Huy hiệu Đồng6 gold badges55 silver badges67 bronze badges

4

$levels = array['low', 'medium', 'high'];
$attributes = array['fat', 'quantity', 'ratio', 'label'];

foreach [$levels as $key => $level]{
    foreach [$attributes as $k =>$attribute]{
             $variables[$level][] = $attribute . '_' . $level;
   }
}

print_r[$variables];

//codepad.viper-7.com/xlvZ2W

Đã trả lời ngày 8 tháng 8 năm 2013 lúc 20:46Aug 8, 2013 at 20:46

Chủ đề: PHP / mysqlprev | Tiếp theoPrev|Next

Trả lời: Sử dụng vòng lặp lồng nhau PHP

Bạn có thể chỉ cần sử dụng vòng lặp foreach kết hợp với vòng for để truy cập và truy xuất tất cả các phím, phần tử hoặc giá trị bên trong một mảng đa chiều trong PHP.

Chúng ta hãy xem ví dụ sau để hiểu về cơ bản nó hoạt động như thế nào:

Câu hỏi thường gặp liên quan

Dưới đây là một số Câu hỏi thường gặp liên quan đến chủ đề này:

  • Cách nhận giá trị đơn từ một mảng trong PHP
  • Cách nhận tất cả các giá trị từ một mảng kết hợp trong PHP
  • Cách hiển thị cấu trúc mảng và giá trị trong PHP

Bài Viết Liên Quan

Chủ Đề