1

私は小さな「ユーザーリスト」システムに取り組んでおり、3 つの配列を foreach する必要があります。これが私が「やりたいこと」です:

<?php
$users = array("user1", "user2");
$descriptions = array("user1 description", "user2 description");
$socials = array("skype: user1", "skype: user2");
foreach ($users as $user && $description as $description && $socials as $social) {
echo "<tr><td style=\"width:60px\"><img width=\"50\" height=\"50\" alt=\"{$user}'s profile picture\" src=\"blog/users/{$user}/avatar.png\"><br/>{$user}</td><td style=\"width:70%\">{$descriptions}</td><td style=\"text-align:left\">{$social}</td></tr>}";}
?>

どうすればこれを機能させることができますか?

4

4 に答える 4

3

最初のパラメーターが null のarray_mapを使用して、3 つの配列から多次元配列を作成し、それを foreach で処理することができます。

$combined = array_map(null, $users, $descriptions, $socials);
foreach ($combined as $user) {
    $username = $user[0];
    $description = $user[1];
    $social = $user[2];
    echo "<tr><td style=\"width:60px\"><img width=\"50\" height=\"50\" alt=\"{$username}'s profile picture\" src=\"blog/users/{$username}/avatar.png\"><br/>{$username}</td><td style=\"width:70%\">{$description}</td><td style=\"text-align:left\">{$social}</td></tr>}";
}
于 2013-07-25T04:17:19.517 に答える
1
$users = array("user1", "user2"); 
$descriptions = array("user1 description", "user2 description"); 
$socials = array("skype: user1", "skype: user2"); $i = 0; 
foreach ($users as $user)
{ 
  $html .= "{$user}{$descriptions[$i]}{$socials[$i]}"; 
  $i++;
}
于 2013-07-25T05:41:39.220 に答える
0

でを使用してkeyforeach別の配列を呼び出すことができます (それらが一致すると仮定します)。

<?php
$users = array("user1", "user2");
$descriptions = array("user1 description", "user2 description");
$socials = array("skype: user1", "skype: user2");
foreach ($users as $key=>$user) {
echo "<tr><td style=\"width:60px\"><img width=\"50\" height=\"50\" alt=\"{$user}'s profile picture\" src=\"blog/users/{$user}/avatar.png\"><br/>{$user}</td><td style=\"width:70%\">{$descriptions[$key]}</td><td style=\"text-align:left\">{$social[$key]}</td></tr>}";}

さらに、1 つの .xml に非常に多くのコード行を含めることはお勧めしませんechoheredoc私は視覚的に読む (そして変更を加える) ことができるように、すべてを「分割」するアプローチを好みます。

foreach ($users as $key=>$user) {
    echo <<<EOD

    <tr>
        <td style="width:60px"><img width="50" height="50" alt="{$user}'s profile picture" src="blog/users/{$user}/avatar.png"><br>{$user}</td>
        <td style="width:70%">{$descriptions[$key]}</td>
        <td style="text-align:left">{$social[$key]}</td>
    </tr>
EOD;
}
于 2013-07-25T04:15:09.660 に答える
0

for ループを実行し、3 つの配列すべてを一度に処理します。

for ($i = 0; $i < count($users); $i++)
{
    echo $users[$i].'<br />'; //get location $i of array $users
    echo $descriptions[$i].'<br />'; //get location $i of array $descriptions
    echo $socials[$i].'<br />'; //get location $i of array $socials
}
于 2013-07-25T04:18:42.803 に答える