PHP数组JSON

PHP数组JSON

问题描述:

我使用的是angularJS控制器这样PHP数组JSON

app.controller('customersCtrl', function($scope, $http) { 
    $scope.element = function(num){ 
     var element_id = num;//num; 
     $http.get("customers.php",{params:{"id":element_id}}).then(function (response) { 
      $scope.myData = response.data; 
     } 
     ,function errorCallback(response){ 
      $scope.e=response.statustext; 
      console.log(e); 

     }); 

    }; 

}); 

这是我的PHP阵列

$id = $_GET[id]; 
    $customer_array = array(); 

    $customer1 = array(
     'name' => 'LoneStar', 
     'city' => 'Houston' 
    ); 

    $customer_array[] = $customer1; 

    $customer2 = array(
     'name' => 'SNHU', 
     'city' => 'Manchester' 
    ); 

    $customer_array[] = $customer2; 

    $customer3 = array(
     'name' => "Regis", 
     'city' => "Boulder" 
    ); 

客户1阵列,我怎么能只返回的只是城市名那一个元素。

+0

你为什么要使用许多阵列,而不是使用一个单一的阵列,并尝试应用过滤条件并返回该对象单独 – Aravind

+0

回声json_encode($ customer_array);并得到回应 – JYoThI

+0

echo $ customer_array [0] ['city']; – JYoThI

您可以使用php的json_encode()函数完成此操作。

$id = $_GET[id];// Assuming this is the customer's name. If not??? 
$customer_array = array(); 

$customer1 = array(
    'name' => 'LoneStar', 
    'city' => 'Houston' 
); 

$customer_array[] = $customer1; 

$customer2 = array(
    'name' => 'SNHU', 
    'city' => 'Manchester' 
); 

$customer_array[] = $customer2; 

$customer3 = array(
    'name' => "Regis", 
    'city' => "Boulder" 
); 
$customer_rquired = array(); 
// Traverse the array to find the customer data 
foreach($customer_array as $key=>$customer_instance){ 
    if($customer_instance["name"] === $id){ 
     $customer_required["customer"] = $customer_instance; 
     echo json_encode($customer_required); 
     break; 
    } 
} 
//What you'd do if no customer is found? 

这呼应了可以在你的AngularJS脚本response.data访问。在那里,您将拥有一个包含客户实例的JSON对象。 但恕我直言,你的数据结构存储客户信息不是很好。如果有两个客户同名怎么办?

如果$id包含元素在customer_array的INDEX,它会像

header("Content-type:application/json; charset=UTF-8"); 
echo json_decode($customer_array[$id]["city"]); 

如果$id包含在customer_array NAME元素,它会像

$customer = array(); 
$response = array(); 

foreach ($customer_array as $customer_element) { 
    if ($id == $customer_element["name"]) { 
     $customer = $customer_element; 
    } 
} 
if (count($customer)) { 
    $response = array("city" => $customer["city"]); 
}else{ 
    $response = array("error" => "element not found") 
} 


header("Content-type:application/json; charset=UTF-8"); 
echo json_decode($response); 

$id = $_GET[id]; // $id = 0 to get the value from the first array 
    $customer_array = array(); 

    $customer1 = array(
     'name' => 'LoneStar', 
     'city' => 'Houston' 
    ); 

    $customer_array[] = $customer1; 

    $customer2 = array(
     'name' => 'SNHU', 
     'city' => 'Manchester' 
    ); 

    $customer_array[] = $customer2; 

    $customer3 = array(
     'name' => "Regis", 
     'city' => "Boulder" 
    ); 

    echo $customer_array[$id]['city']; //the city value of the first array 

“为客户1阵列我怎么才能返回只有一个元素的城市名称

您的代码:

$customer_array = array(); 

    $customer1 = array(
     'name' => 'LoneStar', 
     'city' => 'Houston' 
    ); 

    $customer_array[] = $customer1; 

    $customer2 = array(
     'name' => 'SNHU', 
     'city' => 'Manchester' 
    ); 

    $customer_array[] = $customer2; 

    $customer3 = array(
     'name' => "Regis", 
     'city' => "Boulder" 
    ); 

以上代码使得$ customer_array存在三个顾客的:

$customer_array = array(
    array(//First item in array $customer_array 
     'name' => 'LoneStar', 
     'city' => 'Houston' 
    ), 
    array(//Second item in array $customer_array 
     'name' => 'SNHU', 
     'city' => 'Manchester' 
    ), 
    array(//Third item in array $customer_array 
     'name' => "Regis", 
     'city' => "Boulder" 
    ) 
); 

如果数组没有定义键,在0和向上计数开始,例如。 0,1,2.3 ... 为此$customer_array[0]包含数组:

array(//First item in array $customer_array 
      'name' => 'LoneStar', 
      'city' => 'Houston' 
     ) 

$customers_array[1]包含数组:

array(//Second item in array $customer_array 
      'name' => 'SNHU', 
      'city' => 'Manchester' 
     ) 

$customers_array[2]包含数组:

array(//Third item in array $customer_array 
     'name' => "Regis", 
     'city' => "Boulder" 
    ) 

我怎样才能返回这一个元素的城市名称?

例子:

$customers[0]['city'] would return value "Houston" 
$customers[1]['city'] would return value "Manchester" 
$customers[2]['city'] would return value "Boulder"