PHP değişken adı dinamik oluşumu?

0 Cevap php

Aşağıdaki kod dinamik varolan bir diziye anahtarlarını birleştirir $options_pool. Yani son şekli olmalıdır: $options_pool[ $base_key ][ $first_key ][ $second_key ] ... Bu yüzden dinamik çok boyutlu $options_pool dizinin elemanlarına bir değer atayabilirsiniz edilir.

foreach( $this->post_vars as $name => $value ) {
    //Look for $name key in array $options_pool if it exists.
    //Use multi_array_key_exists() to handle the task
    //It should return something like "fruit:mango:apple_mango"
    //Then dynamically call $options_pool based on the data. Like so: $options_pool[ 'fruit' ][ 'mango' ][ 'apple_mango' ] = $value;
    $match_key = multi_array_key_exists( $name, $options_pool );
    $option_keys = explode( ':', $match_key );
    $option_keys_length = count( $option_keys );
    $option_name_array = array(); 
    if( 0 < $option_keys_length ) {
     for( $c = $option_keys_length; $c > 0; $c-- ) {
         $sub_keys = '$options_pool';
         for( $c_sub = 0; $c_sub < $c ; $c_sub++ ) {
             $sub_keys .= '[ $option_keys[ '.  $c_sub . ' ] ]';  
         }
         $option_name_array[] = $sub_keys;
     } 
     foreach( $option_name_array as $f_var_name ) {
          //the following line should equal to: $options_pool[ 'fruit' ][ 'mango' ][ 'apple_mango' ] = $value;
          $f_var_name = $value;  
       }
    }
}

//The $options_pool array
$options_pool = array( 'car' => '', 'animals' => '', 'fruit' => array( 'mango' => array( 'apple_mango' => '' ));

Ben mantık dışında doğru olduğunu düşünüyorum bu kod bölümü:

foreach( $option_name_array as $f_var_name ) {
    $f_var_name = $value; //particularly this line 
}

çalışmıyor? I $f_var_name değerini baskı test ettik ve sonuç doğru ama gerçekten diziyi aramıyor?

0 Cevap