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

変数$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 に答える
1

簡単に言うと、2 つの配列を 1 つの連想配列に結合するだけなので、php のネイティブ機能を使用してください。これを行うためにループを使用するとパフォーマンスが低下し、カウントを表示する予定がない限り不要です。

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

結果: 配列 ( [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 に答える
0

への変更:

   $data[$i]['name'] = $name[$i];
   $data[$i]['link'] = $link[$i];
于 2012-12-26T02:44:15.197 に答える
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 に答える