我正在尝试构建一个应用程序,其中有2个数组,第二个数组正在将 rsort 应用于第一个数组。
$array_1 = array('20','30','30','20');
$array_2 = array('30','30','20','20');
我想通过在array_2中搜索array_1并返回键值来生成一个新数组,即
$key_array = array('2','0','1','3');
我试过
$array_1 = array('20','30','30','20');
$array_2 = $array_1;
rsort($array_2);
$first_keys = array();
foreach($array_1 as $key=>$arr1){
$first_keys[] = array_search($arr1, $array_2);
}
echo "<pre>";
print_r($first_keys);
但获得 2,0,0,2
我也尝试用&#39; xx&#39;替换当前密钥。但它也打印2,0,0,2
foreach($array_1 as $key=>$arr1){
$array_1[$key] = 'xx';
$first_keys[] = array_search($arr1, $array_2);
}
答案 0 :(得分:2)
您需要从$ array2中删除每次搜索的值,同时保留数组引用。这应该有效(不能在这里测试):
$array_1 = array('20','30','30','20');
$array_2 = $array_1;
rsort($array_2);
$first_keys = array();
foreach($array_1 as $key=>$arr1){
$key= array_search($arr1, $array_2);
$first_keys[] = $key;
$array_2[$key]="";
}
echo "<pre>";
print_r($first_keys);
答案 1 :(得分:1)
您必须从第二个数组中删除搜索到的密钥。
从第二个数组取消设置该键。(工作)
- pip install --upgrade setuptools