1

OK、次のように配列を出力する必要があります。

$sections = array(
    5 => $americanFlag,
    6 => $americanFlag,
    22 => $russianFlag,
    23 => $russianFlag,
    24 => $russianFlag,
    25 => $russianFlag,
);

もちろん、これよりもはるかに長いです。

したがって、次のような配列があるとします。

$russian = array(22, 23, 24, 25);
$american = array(5, 6);

そして、次のような配列:

$americanFlag = 'http://pathtomyAmericanFlag.png';
$russianFlag = 'http://pathtomyRussianFlag.png';

どうすればこれをすばやく簡単に行うことができますか??

4

5 に答える 5

2

おそらくいくつかの方法があります。ここに簡単なものがあります:

$russian = array_fill_keys($russian, $russianFlag);
$american = array_fill_keys($american, $americanFlag);
$sections = ksort(array_merge($russian, $american));

それらをキーでソートしたいと仮定します。そうでない場合は、単に削除しますksort()

于 2013-02-26T00:55:56.520 に答える
0

これと似たようなものかもしれません。

 $countries = array($russian, $american);
   foreach($countries as $country){
     foreach($country as $flag) {
       echo $sections[$flag];
     }
}
于 2013-02-26T00:53:37.533 に答える
0
$usFlags = array_combine($american, array_fill(0, count($american), $americanFlag);
$ruFlags = array_combine($russian, array_fill(0, count($russian), $russianFlag);
$sections = array_merge($usFlags, $ruFlags);

やるべきです。しかし、何を達成したいのかわかりませんが、何かのIDに応じてフラグを出力したいようです(私は推測します)?

flags = array_merge(array_flip($russian), array_flip($american));
$helper = function ($id) use (flags) {
    return isset($flags[$id]) ? $flags[$id] : null;
}


echo 'http://pathtomy'. ucfirst($helper($id)) . 'Flag.png'; // returns 
于 2013-02-26T00:50:10.300 に答える
0

多次元配列を使用できます。

array (
 american => array ( [0] => american, [1] american );
 russian => array  ( [0] => russian, [1] russian );

それはあなたが望んでいるものですか?

于 2013-02-26T00:52:42.583 に答える
0

これを試して

<?php

$russian = array();
$american = array();

foreach($sections as $key=>$value){
   if($value == "http://pathtomyRussianFlag.png"){
      array_push($russian, $key);
   }
   elseif($value == "http://pathtomyAmericanFlag.png"){
      array_push($american, $key);
   }
}

?>
于 2013-02-26T00:57:00.880 に答える