2017-01-03 48 views
2

我有一個數組,開始於一個特定的索引,總是43第一個索引,之後,我有信息,我想將它分成2後找到值products但並不總是價值products將索引64每次都會有所不同。如何在PHP中查找特定索引後將數組拆分爲兩個?

所以,我想這找到索引,這是價值的產品是

$index = array_search('products', $data); 

這樣我可以找到索引,其中,我想在數組中2分割,但我不知道怎麼樣,我試圖用array_chunk,但我不能使它工作

這是我原來的數組:

Array 
(
    [43] => 1234 
    [44] => 001 
    [45] => 100 
    [46] => 0 
    [47] => 0 
    [48] => 2 
    [49] => 
    [50] => 1234 
    [51] => 001 
    [52] => 100 
    [53] => 0 
    [54] => 0 
    [55] => 2 
    [56] => 
    [57] => 
    [58] => 
    [59] => 
    [60] => 
    [61] => 0 
    [62] => 1 
    [63] => 
    [64] => products 
    [65] => 1234 
    [66] => 001 
    [67] => 100 
    [68] => 0 
    [69] => 0 
    [70] => 2 
    [71] => 
    [72] => 1234 
    [73] => 001 
    [74] => 100 
    [75] => 0 
    [76] => 0 
    [77] => 2 
    [78] => 
    [79] => 
    [80] => 
    [81] => 
    [82] => 
    [83] => 0 
    [84] => 1 
) 

而且我想是這樣的:

Array 
(
    [43] => 1234 
    [44] => 001 
    [45] => 100 
    [46] => 0 
    [47] => 0 
    [48] => 2 
    [49] => 
    [50] => 1234 
    [51] => 001 
    [52] => 100 
    [53] => 0 
    [54] => 0 
    [55] => 2 
    [56] => 
    [57] => 
    [58] => 
    [59] => 
    [60] => 
    [61] => 0 
    [62] => 1 
    [63] => 
) 

Array 
( 
    [65] => 1234 
    [66] => 001 
    [67] => 100 
    [68] => 0 
    [69] => 0 
    [70] => 2 
    [71] => 
    [72] => 1234 
    [73] => 001 
    [74] => 100 
    [75] => 0 
    [76] => 0 
    [77] => 2 
    [78] => 
    [79] => 
    [80] => 
    [81] => 
    [82] => 
    [83] => 0 
    [84] => 1 
) 

還沒有價值products的索引,你有一些想法,我可以使用哪些功能來實現這一目標或另一種方式來做到這一點?我希望你能幫助我,謝謝。

+1

你有沒有試過array_slice? – Chris

+0

只是爲了得到索引價值的產品' – Fixer

+1

@Chris我想我找到了解決方案與您的評論:) – Fixer

回答

1

差不多,array_chunk()使得多件,而不是要由給定的關鍵在兩件陣列,這可以用array_slice()

$split = array_search('products', $data); 

print_r(array_slice($data, 0, $split)) // first part 
print_r(array_slice($data, $split + 1)); // second part 
完成
+0

感謝您的回答:) – Fixer

1

也許這有助於:)

$Array = array (10, 20, 30, 40); 
$count = 0; 
foreach($Array as $my_array) 
{ 
if($my_array == "products") 
{ 
    count++ 
    array_chunk($Array, count); 
} 
} 
+0

感謝您的時間和幫助。 – Fixer

+0

歡迎您:) – ivorysmoker

1
// an array 
$array = array(1, 2, 3, "products", 4, 5); 

// $offset = 3 
$offset = array_search("products", $array); 

// array(4,5) 
$last_batch = array_slice($array, ($offset + 1)); 

// array(1,2,3) 
$first_batch = array_slice($array, 0, $offset); 
+0

這是我的解決方案,謝謝。 – Fixer

相關問題