2017-02-07 73 views
-1

信ID我有一個數組:PHP得到陣列

$arr = array(c,b,a); 

而另一個數組:

$string = array(a,a,b); 

怎麼做才能把它給我一個數組看起來像有:

$arr2 = array(2,2,1); 

對不起,我的英語不好。

+2

什麼具有u試過到目前爲止 –

+1

這是什麼 - '3,3,2'? –

+3

背後的邏輯是什麼? – motanelu

回答

2

使用array_search()可以解決這個問題,但請記住array_search()將返回如果不是,則爲FALSE找到陣列

$arr = array('c','b','a'); 
$string = array('a','a','b'); 
$new_arr = array(); 

foreach ($string as $value){ 
    $index = array_search($value, $arr); 
    if ($index !== false) { 
     $new_arr[] = $index; 
    } else { 
     $new_arr[] = -1; // used -1 to indicate a NO FIND 
    } 
} 

print_r($new_arr); 

結果

Array 
(
    [0] => 2 
    [1] => 2 
    [2] => 1 
) 
1

難道你可以使用array_keys()

foreach($string as $key => $value){ 
    array_search($value, array_keys($arr)); 

} 
+0

PHP解析錯誤:語法錯誤,意外 ')',希望 '(' – Lowder

0

試試這個

<?php 
$arr = array('c','b','a','d'); 
$string = array('a','a','b'); 
$op=array(); 
foreach($string as $value) 
{ 
    $op[]=array_search($value, $arr); 
} 
print_r($op) 
?> 

輸出 -

Array ([0] => 2 [1] => 2 [2] => 1)

+0

PHP的警告:提供的foreach無效的參數() – Lowder

0

在值試試這個:

<?php 

$arr = array('c','b','a'); 

$string = array('a','a','b'); 

$res = []; 

foreach ($string as $arr_val){ 
    $res[] = ((int)array_search($arr_val, $arr))+1; 
} 

print_r($res);