2017-06-13 94 views
0

如何用第一個數組的值替換第二個數組的數組鍵?PHP替換數組鍵

$imgNumbers = array(); 
    foreach($imgPat as $imgKey => $imgValue) 
    { 
     $imgNumbers[] = intval(substr($imgValue, strrpos($imgValue, '/') +4)); 
    } 


    $images = array(); 
    foreach($imgPat as $imgKey => $imgValue) { 
     $images[] = img_to_base64($imgValue); 
    } 

$imgNumbers返回一個整數像224111

$images應具有陣列密鑰$imgNumbers

回答

4

你可以做一個單循環:

$images = array(); 
foreach($imgPat as $imgKey => $imgValue) 
{ 
    $imgNumbers = intval(substr($imgValue, strrpos($imgValue, '/') +4)); 
    $images[$imgNumbers] = img_to_base64($imgValue); 
} 
1

寫的$imgNumbers值與指數的關鍵第二陣列創建時

$imgNumbers = array(); 
    foreach($imgPat as $imgKey => $imgValue) 
    { 
     $imgNumbers[] = intval(substr($imgValue, strrpos($imgValue, '/') +4)); 
    } 


    $images = array(); 
    foreach($imgPat as $imgKey => $imgValue) { 
     $images[$imgNumbers[$imgKey]] = img_to_base64($imgValue); 
    } 
0

不如將它們合併在一個循環中獲得更好的性能,像這樣:

$imgNumbers = array(); 
$images = array(); 
foreach($imgPat as $imgKey => $imgValue) 
{ 
    $imgNumbers = intval(substr($imgValue, strrpos($imgValue, '/') +4)); 
    $images[$imgNumbers] = img_to_base64($imgValue); 
} 

以前更多readabl e但你可以通過合併它們並忽略這樣的$ imgNumbers brigde來減少過程:

$images = array(); 
foreach($imgPat as $imgKey => $imgValue) 
{ 
    $images[intval(substr($imgValue, strrpos($imgValue, '/') +4))] = img_to_base64($imgValue); 
}