2017-01-03 22 views
2

私は特定のインデックスで始まる配列を持っています。常に最初のインデックスは43になります。その後、私は情報があり、値を見つけた後に2に分割したいと考えています。products常に値ではありませんproductsインデックス64それは毎回異なるでしょう。PHPで特定のインデックスを見つけた後、配列を2つに分割する方法は?

だから私は、私は、私は2で、アレイを分割したいと思いますが、私はどのように考えているインデックスを見つけることができますこの方法

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

ある価値製品インデックスを見つけるために、これを試してみました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

@クリス私はあなたのコメントで解決策を見つけたと思う:) – Fixer

答えて

1

をほとんど、array_chunk()は、複数の部分ではなく、あなたが与えられたキーによってスライスに2枚の配列をしたい、これは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

関連する問題