2017-01-03 103 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

相关问题