好的,我需要一个像这样输出的数组:
$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';
如何快速轻松地完成这项工作?
答案 0 :(得分:2)
可能有几种方法可以做到。这是一个简单的:
$russian = array_fill_keys($russian, $russianFlag);
$american = array_fill_keys($american, $americanFlag);
$sections = ksort(array_merge($russian, $american));
假设您希望按键排序。如果没有,请删除ksort()
答案 1 :(得分: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
答案 2 :(得分:0)
您可以使用多维数组:
array (
american => array ( [0] => american, [1] american );
russian => array ( [0] => russian, [1] russian );
这就是你想要的吗?
答案 3 :(得分:0)
可能与此类似。
$countries = array($russian, $american);
foreach($countries as $country){
foreach($country as $flag) {
echo $sections[$flag];
}
}
答案 4 :(得分: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);
}
}
?>