2017-06-13 61 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); 
}