HomeLập trìnhPhpPHP, mảng lồng...

PHP, mảng lồng nhau, cần trợ giúp khẩn cấp


Chào.

Tôi có một mảng như vậy:

$validServices = (array [29])
$validSerices[0] = (array [1])
$validServices[0][0] = stdClass [16]
$validServices[0][0]->service_id = (string [1]) `1`
$validServices[0][0]->title = (string [10]) `Management`
…
$validServices[1] = (array [1])
$validServices[1][0] = stdClass [16]
$validServices[1][0]->service_id = (string [1]) `2`
$validServices[0][0]->title = (string [7]) `Systems`
…

Tôi muốn lặp lại các dịch vụ chỉ đơn giản là lặp lại trên màn hình (đây là một phần của mẫu trang web) “tiêu đề” vì vậy tôi kết thúc bằng:
Sự quản lý
hệ thống

Dữ liệu là từ một bảng SQL và tôi làm không phải biết trước sẽ có bao nhiêu dịch vụ.

Tôi đánh giá cao một số trợ giúp về mã cho vòng lặp đó. Một diễn đàn, tôi đoán vậy?

Chúc mừng.


Lớp RecursiveArrayIterator
Sử dụng RecursiveArrayIterator để duyệt qua một lượng mảng phụ không xác định trong mảng bên ngoài. Lưu ý: Chức năng này đã được cung cấp bằng cách sử dụng RecursiveIteratorIterator nhưng rất hữu ích trong việc hiểu cách sử dụng trình vòng lặp khi sử dụng lần đầu tiên vì tất cả các thuật ngữ đều khá khó hiểu ngay từ cái nhìn đầu tiên về SPL!

<?php
$myArray = array(
    0 => 'a',
    1 => array('subA','subB',array(0 => 'subsubA', 1 => 'subsubB', 2 => array(0 => 'deepA', 1 => 'deepB'))),
    2 => 'b',
    3 => array('subA','subB','subC'),
    4 => 'c'
);

$iterator = new RecursiveArrayIterator($myArray);
iterator_apply($iterator, 'traverseStructure', array($iterator));

function traverseStructure($iterator) {
   
    while ( $iterator -> valid() ) {

        if ( $iterator -> hasChildren() ) {
       
            traverseStructure($iterator -> getChildren());
           
        }
        else {
            echo $iterator -> key() . ' : ' . $iterator -> current() .PHP_EOL;   
        }

        $iterator -> next();
    }
}
?>

The output from which is:
0 : a
0 : subA
1 : subB
0 : subsubA
1 : subsubB
0 : deepA
1 : deepB
2 : b
0 : subA
1 : subB
2 : subC
4 : c



1 lượt thích

Đọc thêm  Số hàng php! - Diễn đàn freeCodeCamp

Cấu trúc dữ liệu đó phải được xây dựng chứ không phải trực tiếp từ truy vấn sql. Cấu trúc siêu xấu.

foreach($validServices as $service){
    foreach($service as $service_characteristics){
          foreach($service_characteristics as $key => $value){
                echo "{$key}: {$value}\n";
          }
     }
}



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status