首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

数组有关问题 求大侠给个方法

2013-02-17 
数组问题 求大侠给个方法$a Array([0] 3[1] 1[2] 2[3] 7)$b Array([1] Emross War[2]

数组问题 求大侠给个方法
$a = Array
(
    [0] => 3
    [1] => 1
    [2] => 2
    [3] => 7
)

$b = Array
(
    [1] => Emross War
    [2] => Roman Empire
    [3] => Avalon Wars
    [7] => 掌上三国
    [9] => 罗马(91)
    [10] => Space Dominions
    [11] => 腾讯三国
    [12] => Vampire War
    [15] => 三国英雄传
    [17] => 掌上水浒
)
$a数组中的值是$b 的键值

那我如何得到
$c = Array
(
    [1] => Emross War
    [2] => Roman Empire
    [3] => Avalon Wars
    [7] => 掌上三国
)

求大侠给个答案
php 数组
[解决办法]

$a = Array
(
    0 => 3,
    1 => 1,
    2 => 2,
    3 => 7
);

$b = Array
(
    1 => 'Emross War',
    2 => 'Roman Empire',
    3 => 'Avalon Wars',
    7 => '掌上三国',
    9 => '罗马(91)',
    10 =>'Space Dominions',
    11 =>'腾讯三国',
    12 =>'Vampire War',
    15 =>'三国英雄传',
    17 =>'掌上水浒'
);
foreach($a as $k){
     $c[$k]=$b[$k];
}
ksort($c);
print_r($c);

[解决办法]
sort($a); // 将数组 $a 按值升序排列
$c = array(); //定义一个结果数组
foreach($a as $k) { // 依次从数组 $b 中取值
  $c[$k] = $b[$k];
}

[解决办法]


$a = Array
(
    '0' => 3,
    '1' => 1,
    '2' => 2,
    '3' => 7
);

$b = Array
(
    '1' => 'Emross War',
    '2' => 'Roman Empire',
    '3' => 'Avalon Wars',
    '7' => '掌上三国',
    '9' => '罗马(91)',
    '10' => 'Space Dominions',
    '11' => '腾讯三国',
    '12' => 'Vampire War',
    '15' => '三国英雄传',
    '17' => '掌上水浒',
);
$c = array_flip($a);//array_flip -- 交换数组中的键和值


$d = array_intersect_key($b, $c);//array_intersect_key -- 使用键名比较计算数组的交集
print_r($d);


[解决办法]
array_intersect_key($b, array_flip(array_unique($a)))

热点排行