如何使用PHP将每个数组值存储在变量中

如何使用PHP将每个数组值存储在变量中,php,arrays,variables,Php,Arrays,Variables,我有一个数组,看起来像这样: Array ( [2] => http://www.marleenvanlook.be/admin.php [4] => http://www.marleenvanlook.be/checklogin.php [5] => http://www.marleenvanlook.be/checkupload.php [6] => http://www.marleenvanlook.be/contact.php )

我有一个数组,看起来像这样:

Array
(
    [2] => http://www.marleenvanlook.be/admin.php
    [4] => http://www.marleenvanlook.be/checklogin.php
    [5] => http://www.marleenvanlook.be/checkupload.php
    [6] => http://www.marleenvanlook.be/contact.php
)
我要做的是将这个数组中的每个值存储到一个变量中(使用PHP)。例如:

$something1 = "http://www.marleenvanlook.be/admin.php";
$something2 = "http://www.marleenvanlook.be/checklogin.php";
...

嗯。。你可以这样做吗

$myArray = array("http://www.marleenvanlook.be/admin.php","http://www.marleenvanlook.be/checklogin.php","etc");

$i = 0;
foreach($myArray as $value){
    ${'something'.$i} = $value;
    $i++;
    }

echo $something0; //http://www.marleenvanlook.be/admin.php
这将动态创建名为
$something0
$something1
等的变量,这些变量保存在
foreach
中分配的数组值

如果您希望涉及密钥,也可以执行以下操作:

$myArray = array(1 => "http://www.marleenvanlook.be/admin.php","http://www.marleenvanlook.be/checklogin.php","etc");

foreach($myArray as $key => $value){
    ${'something'.$key} = $value;
    }

echo $something1; //http://www.marleenvanlook.be/admin.php
PHP有一个名为的东西,它允许您使用另一个变量的值命名一个变量

$something = array(
    'http://www.marleenvanlook.be/admin.php',
    'http://www.marleenvanlook.be/checklogin.php',
    'http://www.marleenvanlook.be/checkupload.php',
    'http://www.marleenvanlook.be/contact.php',
);

foreach($something as $key => $value) {
    $key = 'something' . $key;
    $$key = $value;

    // OR (condensed version)
    // ${"something{$key}"} = $value;
}

echo $something2;
// http://www.marleenvanlook.be/checkupload.php
但问题是你为什么要这么做?要通过键访问,因此您可以执行以下操作:

echo $something[2];
// http://www.marleenvanlook.be/checkupload.php
我要做的是:

$something1 = $the_array[2];
$something2 = $the_array[4];
您可以使用
extract()


有关

为什么要这样做的详细信息?您可以使用
$arr[#]
直接访问数组元素,因此,对于实例
echo$arr[2]将输出<代码>http://www.marleenvanlook.be/admin.php
。这比为每个设置一个变量更容易,更不用说效率稍高一点,因为设置的变量不会超过需要的数量。很明显,您解决了一个错误的问题,每次添加一个新键时,您都会手动执行此操作?他问“我想做的是将此数组中的每个值存储到一个变量中。”-上面的例子非常基本。如果他想用foreach循环读取数组,他也可以用同样的方法完成变量命名
$data = array(
    'something1',
    'something2',
    'something3',
);
extract($data, EXTR_PREFIX_ALL, 'var');
echo $var0; //Output something1