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?