0

私は多次元配列を持っています:

Array (
  [0] => Array (
    [0] => Kolkata Knight Riders v Delhi Daredevils
    [1] => Kolkata
  ) 
  [1] => Array (
    [0] => Royal Challengers Bangalore v Mumbai Indians
    [1] => Bangalore
  )
  [2] => Array (
    [0] => Sunrisers Hyderabad v Pune Warriors 
    [1] => Hyderabad (Deccan)
  ) 
  [3] => Array (
    [0] => Delhi Daredevils v Rajasthan Royals 
    [1] => Delhi
  )
  ... 3 more elements
)

したい:

  • explode"v" に基づく配列要素の最初のteam A各要素。Team B.array[0][0]Kolkata Knight RidersDelhi Daredevils
  • 両方の展開された配列からチーム名の間のスペースを削除する新しい配列を作成します (例: Sunrisers Hyderabadbecome SunrisersHyderabad)。

私は次のコードを試しました:

$i = 0;
foreach($match1 as $value){
    $teams[$i] = explode(' v ', $value[0]); // Exploding teams
    $teams[$i] = strip_tags($teams[$i], 'a'); // Eliminating html

    $teamA[] = explode(' ', $team[$i][0]); // Eliminating Space in Team Name

    $teamA[] = trim($match2[$i]); // Removing white spaces
    $teamB[] = str_replace(' ', '', $team[$i][1]); // Trying Str_Replace method
    $teamB[] = trim($match3[$i]); // Removing White Spaces
    $i++;
}

上記のコードは私のすべての要件を満たしていないようです。便利なコードはありますか?

4

1 に答える 1

0

まず第一に、変数にはロジック名を使用してください。 matchreal_matchmatch1、などの変数名を使用すると、スクリプトが読めなくなりますmatch2

echo '<pre>';
$data = array(
    array(
        'Kolkata Knight Riders v Delhi Daredevils',
        'Kolkata',
    ),
    // ...
);

foreach ($data as $match) {
    $teams = explode(' v ', $match[0]);
    $teams = array_map(function ($team) {
        return trim(str_replace(' ', '', $team));
    }, $teams);

    // do something with the 2 normalized teams in $teams

    var_dump($teams);
}
于 2013-03-09T17:43:42.760 に答える