从PHP中的数组中获取变量

时间:2012-08-27 11:43:46

标签: php arrays multidimensional-array

我想将此数组中的值转换为两个变量:

  • $标题
  • $网址

为每个内部数组。我该怎么办?

Array
(
[0] => Array
    (
        [0] => Reuters
        [1] => http://www.reuters.com
    )

[1] => Array
    (
        [0] => CNN
        [1] => http://www.cnn.com
    )
)

5 个答案:

答案 0 :(得分:1)

这会给你两个带有你的标题和网址的数组:

foreach ($array as $value)
{
    $title[] = $value[0];
    $url[] = $value[1];
}

或者,如果您想将值变为变量:

$title1 = $array[0][0];
$title2 = $array[1][0];

$url1 = $array[1][0];
$url2 = $array[1][1];

答案 1 :(得分:1)

虽然阿纳斯的答案应该有效,但我看不出分离数据的意义,因为它们显然属于一体(名字和网址就像马和马车,爱情和婚姻......)

$input = array(array('CNN','http://www.cnn.com'),array('rubbish','http://www.fox.com'));
$grouped = array();
while($pair = array_shift($input))
{
    $grouped[$pair[0]] = $pair[1];
}
echo $grouped['rubbish'];//echoes http://www.fox.com

这种方法的好处是什么?

  1. 处理后原件是多余的,通过移位,你释放内存(阵列被拆开)。所以效率更高。
  2. 您的数据完整性稍微有点保证IMO(名称和网站保持配对)。
  3. 如果您愿意,仍然可以将所有名称和所有网址作为单独的数字索引数组:

  4. $title = array_keys($grouped);
    $urls = array_values($grouped);
    

答案 2 :(得分:0)

foearch ($yourArrayName as $innerArray){
 $title=$innerArray[0];
 $url=$innerArray[1];
 echo $title.'-'.$url;
}

通过这种方式,您首先迭代外部数组的元素,然后,您可以获得您感兴趣的每个值。

如果你想存储所有元素,你必须创建一个新数组,但是,此时,为什么不“简单地”保留原始元素呢?

答案 3 :(得分:0)

复制此代码:

$title = array();
$url = array();

foreach ($array as $value)
{
    $title[] = $value[0];
    $url[] = $value[1];
}

print_r($title);
print_r($url);

答案 4 :(得分:0)

<?php
    $titles=array();
    $urls=array();
    foreach($array as $key=>$value)
    {
       $titles[]=$value[$key][0];
       $urls[]=$value[$key][1];
    }
?>

使用此代码,您可以制作两个不同的单维数组数据,并保存n个数组结构化数据。