我如何命名这些PHP数组?

时间:2012-04-03 23:41:00

标签: php syntax

让我们说我需要三个阵列,福特,雪佛兰和闪避。每个数组都有三个项目:

$ford['engine'] = 'something';
$ford['color'] = 'something';
$ford['price'] = 'something';

$chevy['engine'] = 'something';
$chevy['color'] = 'something';
$chevy['price'] = 'something';

$dodge['engine'] = 'something';
$dodge['color'] = 'something';
$dodge['price'] = 'something';

我可以写出来没有问题,也不需要太长时间。但是,让我说我需要五六十个阵列,我需要制作十到二十个不同的项目。我想在每个数组文件的顶部放一个变量来表示数组名称是什么,但我对语法不太清楚,我不太熟悉$$或者我将如何使用数组:< / p>

$name = 'ford';

$(I want this to be "$name")['engine'] = 'something';
$(I want this to be "$name")['color'] = 'something';
$(I want this to be "$name")['price'] = 'something';

我也考虑过这样做:

$name = 'ford';

$view[$name.'_engine'] 
$view[$name.'_color'] 
$view[$name.'_price'] 

我可以就最佳方法获得一些建议吗?

2 个答案:

答案 0 :(得分:5)

写一个小函数来做那个

$cars = array(); //Create an array to hold the values    
function writeArray($car, $var1, $var2, $var3) {
     global $cars;
     $cars[$car] = array('engine' =>  $var1, 'color' => $var2, 'price' => $var2);
}
//Now use it like
writeArray('Chevy', $something, $something, $something);

//If you want to access the array in the form of $ford['engine'] then use this

extract($cars); //This will split the array into small array accessible by model 

答案 1 :(得分:4)

您可以使用variable variables

$var = 'ford';
$$var['engine'] = '...';
$$var['color'] = '...';

$var = 'chevy';
$$var['engine'] = '...';
$$var['color'] = '...';

或者只使用多维数组:

$cars = array();

$make = 'ford';
$cars[$make] = array();
$cars[$make]['engine'] = '...';
$cars[$make]['color'] = '...';

// or

$cars['ford'] = array(
    'engine' => '...',
    'color' => '...',
);