2017-12-13 2 views
-1

이것은 쉽지는 않지만 그렇게하기위한 기능을 찾는 데 어려움이 있습니다.특정 키에 의한 분할 연관 배열

는 내가 키를 수동으로 2658, 2878를 지정 할 수 있어야합니다

Array 
(
    [2338] => 181684562467 
    [2550] => 181645662467 
    [2658] => 182345645567 
    [2878] => 171756765267 
) 

같은 배열을 가지고있다. 내 입력 값 오프

그리고 기반으로 두 배열
Array 
(
    [2338] => 181684562467 
    [2550] => 181645662467 
) 

&

Array 
(
    [2658] => 182345645567 
    [2878] => 171756765267 
) 

이 작업을 수행하는 가장 효율적인 방법은 무엇입니까

로 배열을 분할? 여기

당신이 내 코드를 이해하는 데 도움이 (MySQL의 쿼리를 통해) 배열이 원래 생성되는 방법

$itemidquery = "SELECT * FROM wp_postmeta WHERE meta_key = '_itemids';"; 

$result = mysqli_query($conn, $itemidquery); 
$data_array = array(); 
while ($row = mysqli_fetch_assoc($result)) { 
    $data_array[$row['post_id']] = $row['meta_value']; 
} 
+0

안녕 브라이언, 수동 의미로, 사용자 입력을 통해? – Daan

+0

수동으로 저는 2658, 2878을 나눌 키를 알고 있습니다. 실제 배열은 100+ 이상의 큰 목록이며 분할하고자하는 정확한 키를 지정하려고합니다. –

+0

원하는 키를 어떻게 삽입합니까? – pr1nc3

답변

0
<?php 


$array=Array 
(
    2338 => 181684562467, 
    2550 => 181645662467, 
    2658 => 182345645567, 
    2878 => 171756765267 
); 
//you set the values of the array seperated with comma!!! 
$name = $_GET["name"]; 
if($name!=''){ 

    //get the multiple values that are seperated by comma and create an array of them 
$data=explode(',',$name); 

    $myArray=array(); 
foreach($data as $row){ 
    //check if the key you insert exists in the array, if it does it inserts the value in the new array 
    if(array_key_exists ($row,$array)){ 
     $myArray[]=$array[$row]; 
    } 

} 

//the output based on the keys you insert 
print_r($myArray); 
} 

추가 의견입니다. 귀하의 예제에 대한 정적 배열을 만들어야했습니다. GET 메서드를 사용하여 데이터를 검색하고 있습니다.

샘플 링크 :

http://localhost/testing_project.php?name=2658,2338 
+0

감사합니다. 이것을 보면서 수정하려고 노력했습니다. 그것은 (원래 배열의 키를 유지하는 것처럼) 말마다 분할하지 않고 새로운 배열을 만듭니다. –

+0

굉장한 감사합니다. 키를 유지하려면 단순히'$ myArray [$ row] = $ data_array [$ row];를 수정하면됩니다. –

+0

다행입니다! – pr1nc3