Die ersten Smarty-Array-Element

Wie bekomme ich die ersten smarty-array-element ?

Eigentlich weiß ich, wie dies zu tun... aber ich habe folgende Problem.

Bekomme ich ein array übergeben, das aussieht wie dieses

[DATA] => Array
        (
            [12] => Array
                (
                    [content] => foobar
                )

            [1] => Array
                (
                    [content] =>  
                )

            [2] => Array
                (
                    [content] =>  
                )

            [3] => Array
                (
                    [content] =>  
                )

 //this is a snipit of {$myVar|@print_r}

dieser geht nach unten, bis [11]

Aus irgendeinem Grund gibt es keine [0] und ein [12] auf dieser position.

Ich weiß nicht, ob dies werde immer 12 sein, aber ich weiß, dass es immer an der ersten position.

Kann ich nicht Sortieren dieses Arrays, da gibt es ein weiteres array, das die gleichen "Sortierfolge" und ich habe zu halten, um für die spätere Ausgabe.

Ist es, einen Weg zu wählen das erste element, ohne mit array[0] oder array.0 ?

Info: Die im Projekt arbeiten, verwendet Smarty 2

BEARBEITEN

  • Würde ich neu indizieren, array, wenn ich wüsste wie 🙂

, Da gibt es jetzt genau richtig nach ein paar Stunden habe ich mein problem gelöst temporär.

Um dieses Problem zu lösen, öffnete ich {php} in smarty, hab das array brauche ich, aufgeteilt in zwei arrays (re-Indizierung Ihnen natürlich so beginnt es bei 0). Als ich die temp-save-pos 0 von jedem array in ein temporäres array. Überschreiben Sie die orig 0 mit Unterstrich (_) und als multisort Sie, setzen Sie wieder den ursprünglichen Wert zu 0 und geben Sie zurück zu $this->_tpl_vars sehr komplizierte Art und Weise. (alle innerhalb des tpl)

{php}
    //get array data and re-index it
    $i=0;
    foreach( $this->_tpl_vars['options'] as $option )
    {
        foreach( $option['DATA'] as $data )
            $array[$i][] = $data;
        $i++;
    }

    //delete empty entrys
    $i=0;
    foreach( $array[1] as $data ){
        if(trim($data['content']) != ""){
            $s[] = $array[0][$i];
            $a[] = $array[1][$i];
        }
        $i++;
    }

    //temp save first values
    $tmp_s  = $s[0];
    $tmp_a  = $a[0];

    //override first values to have a clean sort and keep them values on pos 0
    $s[0] = $a[0] = "_";

    //sort the arrays
    array_multisort($s,$a);

    //putting back the original values
    $s[0] = $tmp_s;
    $a[0] = $tmp_a;

    //pass the array back to tpl_vars
    $this->_tpl_vars['new_options'][] = $s;
    $this->_tpl_vars['new_options'][] = $a;


{/php}

InformationsquelleAutor Dwza | 2014-08-22

Schreibe einen Kommentar