2017-09-27 100 views
-2

我在PHP一个这样的数组:PHP:一个的毗连元件阵列到另一个元件阵列

[ 
    'gudang' => 'A' 
    'blok' => '2' 
    0 => [ 
     'coil_no' => 'DNA07X1C519081726A' 
     'urut' => '28204' 
     'lokasi_terakhir' => '411' 
    ] 
    1 => [ 
     'coil_no' => 'DNA07X1A518081712A' 
     'urut' => '28205' 
     'lokasi_terakhir' => '211' 
    ] 
    2 => [ 
     'coil_no' => 'DNA07X1A420081707A' 
     'urut' => '28206' 
     'lokasi_terakhir' => '311' 
    ] 
] 

我需要的concat元件gudangbarang,涉及具有元件lokasi_terakhir其是阵列TIPE另一元件。我需要这样的:

[ 
    0 => [ 
     'coil_no' => 'DNA07X1C519081726A' 
     'urut' => '28204' 
     'lokasi_terakhir' => 'A2411' 
    ] 
    1 => [ 
     'coil_no' => 'DNA07X1A518081712A' 
     'urut' => '28205' 
     'lokasi_terakhir' => 'A2211' 
    ] 
    2 => [ 
     'coil_no' => 'DNA07X1A420081707A' 
     'urut' => '28206' 
     'lokasi_terakhir' => 'A2311' 
    ] 
] 

我需要删除gudangblok,然后CONCAT每个lokasi_terakhir元素。 请指教。

+1

https://stackoverflow.com/help/how-to-请问 – Calimero

+0

问题不清,投票关闭 – RomanPerekhrest

回答

0

请尝试

$gudang = $array['gudang']; 
$blok = $array['blok']; 
foreach($array as $key =>$val){ 
    $array['lokasi_terakhir'] = $gudang.$blok.$val['lokasi_terakhir']; 
} 
print_r($array); 
1

尝试使用array_map

$input = [ 
    0 => [ 
     'coil_no' => 'DNA07X1C519081726A' 
     'urut' => '28204' 
     'lokasi_terakhir' => '411' 
    ] 
    1 => [ 
     'coil_no' => 'DNA07X1A518081712A' 
     'urut' => '28205' 
     'lokasi_terakhir' => '211' 
    ] 
    2 => [ 
     'coil_no' => 'DNA07X1A420081707A' 
     'urut' => '28206' 
     'lokasi_terakhir' => '311' 
    ] 
]; 

$gudang = 'A'; 
$blok = 2; 

$output = array_map(function(&$value) use ($gudang, $blok) { 
    $value['lokasi_terakhir'] = $gudang.$blok.$value['lokasi_terakhir']; 
}, $input); 
+0

PHP警告'yii \ base \ ErrorException'带有消息'Illegal string offset'lokasi_terakhir'' –

+0

从输入数组中删除'gudang'和'blok'。 –

0

试试这个:

$new_arr = []; 
$str = $arr['gudang'] . $arr['blok']; 
for($i = 0; $i < count($arr)-2; $i++) { 
    $new_arr[$i] = $arr[$i]; 
    $new_arr[$i]['lokasi_terakhir'] = $str.$arr[$i]['lokasi_terakhir']; 
} 

print_r($new_arr); 
0
$array1 = [ 
    'gudang' => 'A', 
    'blok' => '2', 
    0 => [ 
     'coil_no' => 'DNA07X1C519081726A', 
     'urut' => '28204', 
     'lokasi_terakhir' => '411' 
    ], 
    1 => [ 
     'coil_no' => 'DNA07X1A518081712A', 
     'urut' => '28205', 
     'lokasi_terakhir' => '211' 
    ], 
    2 => [ 
     'coil_no' => 'DNA07X1A420081707A', 
     'urut' => '28206', 
     'lokasi_terakhir' => '311' 
    ] 
]; 
$length = count($array1); 
$array2 = array_splice($array1, 2, $length); 
echo json_encode($array2); 
相关问题