0

私は動的に配列を作成することができました ($$myGenreそれぞれを含むようにname => id) が、$myGenre何も含まれていません...どうすればこれを機能させることができますか:すべて$myGenreを含む$$myGenre必要$$myGenreがあり、その内容name => id$myGenreのため、異なるジャンルごとforeachにオーバーライドしています ) :$myGenre

<?php function findSection() {
    global $post, $custom_meta_fields, $myGenre;
    foreach ($custom_meta_fields as $fields) {  

        foreach ($fields as $field) {

            if ($field == $fields['genre']) {

                $myGenre = array($field['title']);
                $$myGenre = array();

            } else {
                ${$myGenre}[$field['name']] = $field['id'];
            }
        }
        var_dump($$myGenre);
     }
}


$custom_meta_fields = array(
                            array( //THRILLER
                            'genre' => array( 'title' => 'Thriller'),
                            'fields' => array(
                                        'name' => 'Movie1',
                                        'desc' => 'Desc movie1',
                                        'id' => 'id1',
                                        'type' => 'text'),
                                        array(
                                            'name' => 'Movie2',
                                            'desc' => 'desc movie2',
                                            'id' => 'id2',
                                            'type' => 'text'
                                              ),
                                        array(
                                            'name'  => 'movie3',
                                            'desc'  => 'desc',
                                            'id'    => 'id3',
                                            'type'  => 'image'
                                            )
                            ),
                            array(
                                'genre' => array( 'title' => 'Action'),
                                'fields' =>  array('name' => 'Action1',
                                           'desc' => 'desc act1',
                                           'id'   => 'idAction1')
                            )
                        );

findSection();

ご協力いただきありがとうございます

4

1 に答える 1

3

あなたは2ドルでかなり奇妙なことをしていたので、連想配列を使用するようにコードを変更しました。

<?php
function findSection() {
    global $post, $custom_meta_fields, $myGenre;
    foreach ($custom_meta_fields as $fields) {  

        foreach ($fields as $field) {

            if ($field == $fields['genre']) {

                $genre =$field['title'];
                $all[$genre]= array();

            } else {
                $all[$genre][$field['name']] = $field['id'];
            }
        }
     }
    echo "<pre>".var_export($all,TRUE)."</pre>";
}

結果:

array (
  'Thriller' => 
  array (
    'Movie1' => 'id1',
    'Movie2' => 'id2',
    'movie3' => 'id3',
  ),
  'Action' => 
  array (
    'Action1' => 'idAction1',
  ),
)
于 2012-04-28T19:03:35.197 に答える