私はこのような配列を持っています:
array (size=8)
'cb' => string '<input type="checkbox"/>' (length=24)
'title' => string 'Name' (length=4)
'download_category' => string 'Categories' (length=10)
'download_tag' => string 'Tags' (length=4)
'price' => string 'Price' (length=5)
'sales' => string 'Sales' (length=5)
**'earnings' => string 'Earnings' (length=8)**
'shortcode' => string 'Purchase Short Code' (length=19)
'date' => string 'Date' (length=4)
今、私がやりたいことは、次のように「収益」を 3 番目の位置に移動することです。
array (size=9)
'cb' => string '<input type="checkbox"/>' (length=24)
'title' => string 'Name' (length=4)
**'earnings' => string 'Earnings' (length=8)**
'download_category' => string 'Categories' (length=10)
'download_tag' => string 'Tags' (length=4)
'price' => string 'Price' (length=5)
'sales' => string 'Sales' (length=5)
'shortcode' => string 'Purchase Short Code' (length=19)
'date' => string 'Date' (length=4)
この配列の最初の 9 つの要素は、順序が固定されているという意味で静的ですが、問題があれば、この配列には ('date' の後) より多くの要素が存在する可能性があります。
したがって、x 番目の要素を現在の 3 番目の要素の位置の前に移動する簡単な方法を探しています。
私が試したことの 1 つは、最初の 2 つの要素を変数に保存してから、それらの設定を解除することです。また、収益要素を変数に設定解除します。したがって、配列は 3 番目の要素から始まります。次に、3 番目の要素の前に自分の要素が必要なので、次のように他の 2 つの要素を元に戻す必要があります。
$first = $array[0];
$second = $array[1];
$earnings_element = $array['earnings'];
unset($array[0]);
unset($array[1]);
unset($array['earnings']);
array_unshift($array,$first,$second,$earnings_element);
問題は、要素名が失われるか (1、2 などのキー値になる)、その要素の値が unshift に挿入されることです。
もっと簡単な方法を知っている人はいますか?
編集:以下のコードでは、配列の名前として「配列」を使用しています。実際の配列の名前ではありません。