Προς το περιεχόμενο

Ερώτηση που αφορά PHP array


philos

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλημέρα! :)

Για να μην το παλεύω με τις ώρες μόνος μου (ήδη έχω φάει κάμποση ώρα), θα ήθελα λίγο βοήθεια στο εξής πρόβλημα με arrays.

Έχουμε αυτό το var_dump ενός php array $data.

dump.png.a150c53116356d64709c9b241cb5412a.png

Η ερώτησή μου: πως πρέπει να γράψω την foreach ($data[2] AS $key => $value) (δυστυχώς θέλω μόνο με αυτή να το τρέξω λόγω ειδικού σκοπού), ώστε να τυπώσω το εξής:

// πρώτη γραμμή
aa
bb

// δεύτερη γραμμή
cc
dd

Το πρόβλημά μου είναι ότι δεν έχω τα ζεύγη στην ίδια γραμμή, είναι περιπλεγμένα.

ΥΓ: Φυσικά αποδεκτές λύσεις και οι foreach μέσα σε foreach.

Επεξ/σία από philos
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Θέλεις το index 0 από το value μαζί με το index 0 από το text, μετά το 1 από το value με το 1 από το text κοκ; Για ποιο λόγο θέλεις να χρησιμοποιήσεις μόνο foreach και όχι μια for που θα ήταν πιο βολική;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα βόλευε κάτι σαν το ακόλουθο:

$array = array_combine($data[2]['value'], $data[2]['text']);

το οποίο έχει ως αποτέλεσμα:

array(2) {
  ["aa"]=>
  string(2) "bb"
  ["cc"]=>
  string(2) "dd"
}

και με ένα:

foreach ($array as $value => $text) { ... }

μπορείς να πάρεις τις 2 τιμές (value/text).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μία λύση αυτή του @macabre_sunsets

άλλη λύση εάν υποθέσεις ότι το data[2] είναι lvl 0 εσύ θες να πασ στο lvl 2 να τυπώσεις με ένα space και ένα "\n"  στο lvl 1

γράφε τον κώδικα σε text αν θέλει κάποιος να κάνει simulation να χρειάζεται μόνο copy paste

$data = [
        1=>[],
        [
            ['value'=>['aa','cc',""]],
            ['text'=>['bb','dd','']],
        ],    
        [],
        [],
        []
    ];
   

    foreach ($data[2] as $lvl0)
    {
        foreach ($lvl0 as $lvl1)
        {
            foreach ($lvl1 as $lvl2)
            {
                echo $lvl2; echo " ";
            }
            echo "\n";
        }
    }

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...