0

我有一个示例代码:

$link = array('google.com', 'facebook.com');
$name = array('google', 'facebook');

$data = array();
for($i=0; $i<count($link); $i++) {
   $data['name'] = $name[$i];
   $data['link'] = $link[$i];
}
print_r($data);

=>结果显示Array ( [name] => facebook [link] => facebook.com ) ,不显示全部,如何适应它?

4

5 回答 5

1

keep it simple, all you're doing is combining two arrays into an associative array, so use the native functionality of php. Using a loop to do this is a performance hit and unnecessary unless you plan on displaying the count.

<?php
    $names = array('google', 'facebook');
    $links = array('google.com', 'facebook.com');
    $data = array_combine($names, $links);
    print_r($data);
?>

result: Array ( [google] => google.com [facebook] => facebook.com )

于 2012-12-26T03:01:49.013 回答
1

尝试:

$data[$i]['name'] = $name[$i];
$data[$i]['link'] = $link[$i];

出去:

Array
(
    [0] => Array
        (
            [name] => google
            [link] => google.com
        )

    [1] => Array
        (
            [name] => facebook
            [link] => facebook.com
        )

)
于 2012-12-26T02:47:26.670 回答
1

变量$data应该是一个多维数组。否则,最新的数据会覆盖之前的数据。
尝试这个。

$link = array('google.com', 'facebook.com');
$name = array('google', 'facebook');

$data = array();
for($i=0; $i<count($link); $i++) {
   $data[] = array(
        'name' => $name[$i],
        'link' => $link[$i]
   );
}
print_r($data);
于 2012-12-26T02:45:25.140 回答
0
for($i=0; $i<count($link); $i++) {
   $data[] = array('name' => $name[$i], 'link' => $link[$i]);
}

或者:

foreach ($link as $index => $url) {
    $data[] = array('name' => $name[$index], 'link' => $url);
}

另一个好的解决方案是array_combine

array_combine($name,$link);

申请结果array_combine

array (
  'google' => 'google.com',
  'facebook' => 'facebook.com',
)
于 2012-12-26T02:46:05.420 回答
0

改成:

   $data[$i]['name'] = $name[$i];
   $data[$i]['link'] = $link[$i];
于 2012-12-26T02:44:15.197 回答