解决一个问题就会产生另一个问题. 我让基于映射数组的数组键进行更新,但是它会将新映射的键移动到数组的底部.我需要元素列表底部的子array.
重命名关键点后,数组的截断片段如下所示:
0 =>
array (
'category' => 'Sink',
'sublineitems' =>
array (
0 =>
array (
'quantity' => 1,
'model' => 'PBMS2016-12-X',
'customerspecificpricings' =>
array (
),
'electricalutilitygrids' =>
array (
),
'plumbingutilitygrids' =>
array (
0 =>
array (
'remarks' => '3-1/2" drain opening',
),
),
'subline_item_id' => '844b7c74-b1b7-4f17-a2da-f0c84cef432d',
'item_type_code' => 0,
'item_type_description' => 'Normal',
'vendor_id' => '4e1ab2ef-774e-4c73-be60-c937d1efeb56',
),
),
'lineitem_id' => 'e592feab-1e1a-4cfc-a97a-f1108c7156b6', *** needs to follow 'category' ***
'item_number' => '1', *** needs to follow 'lineitem_id' ***
),
非数字子数组的键用作表名.迭代数组时,在‘lineItem_id’和‘Item_number’之前遇到了‘subineItems’子array.我需要对元素重新排序,以便子数组排在数组/子数组中的其他元素之后.这些数组的嵌套深度为6-8个数组,并且所有数组的键名称并不相同.
我try 过ARRAY_MAP(ARRAY_VALUES)、ARRAY_MULTSORT、JSON_ENCODE/DECODE.订单不受影响.
期望的结果是在每个数组/子数组的顶部对非数组元素进行分组的array.
array (
'category' => 'Mop Sink',
'lineitem_id' => 'e592feab-1e1a-4cfc-a97a-f1108c7156b6',
'item_number' => '1',
'sublineitems' =>
array (
0 =>
array (
'quantity' => 1,
'model' => 'PBMS2016-12-X',
'cube' => 4.0,
'width' => 24.63,
'depth' => 19.38,
'height' => 16.0,
'gtin' => 'null|null|null',
'subline_item_id' => '844b7c74-b1b7-4f17-a2da-f0c84cef432d',
'item_type_code' => 0,
'item_type_description' => 'Normal',
....
'customerspecificpricings' =>
array (
),
'electricalutilitygrids' =>
array (
),
'plumbingutilitygrids' =>
array (
0 =>
array (
'remarks' => '3-1/2" drain opening',
),
),
'gassteamutilitygrids' =>
array (
),
'hvacutilitygrids' =>
array (
),
我使用Kluge解决了Line Items数组的直接问题:
if(isset($value['sublineitems'])){
$value['sublineitems2'] = $value['sublineitems'];
unset($value['sublineitems']);
$value['sublineitems'] = $value['sublineitems2'];
unset($value['sublineitems2']);
}
但这里一定有更好的方法... 谢谢!