替换辅助数组 PHP 中的值
Replace value in assocative array PHP
我正在尝试将数组从PHP回显到我的javascript应用程序,并根据其匹配更改键的值。
$stmt = $con->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $key => $value) {
if ($key == 'Service' && $value == '1')
$result[$key[$value]] = 'Dinner';
if ($key == 'Service' && $value == '2')
$result[$key[$value]] = 'Lunch';
if ($key == 'Service' && $value == '3')
$result[$key[$value]] = 'Breakfast';
}
基本上,数据库具有与某些服务相对应的数字条目,我正在尝试更改数字以反映实际服务,但到目前为止我尝试过的任何方法都没有奏效。
我唯一可以肯定的是上面的代码是错误的,而且非常丑陋。有没有一个PHP函数可以做我想做的事?
另一方面,在javascript端更改值可能更容易,但我也无法做到这一点。
使用ajax,角度$http方法,我用来检索数据
.then(function (response) {
console.log(response);
$scope.userData = {};
$scope.userData = response.data;
我已经尝试过在响应中更改数据;
if (response.data.services == '1') {
response.data.services = 'Dinner';
}
但这行不通。
也尝试过
if ($scope.userData.services == '1') {
$scope.userData.services == 'Dinner';
}
不起作用,但我怀疑即使它这样做了,它也不会更改 response.data.services 的所有值以正确显示所引用的服务。
您可以使用数组进行映射/查找:
// One-time definition
$services = ['1' => 'Dinner', '2' => 'Lunch', '3' => 'Breakfast'];
// Your code...
$stmt = $con->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($result as &$row)
{
// If the key is set and is mapped in $services
if(isset($row['Service']) && isset($services[$row['Service']]))
{
// Then replace it
$row['Service'] = $services[$row['Service']];
}
}
我认为如果你只用 $key
替换$key[$value]
,你的代码也可以工作,但是如果你只需要一个特定的键,使用 foreach 循环有点浪费。
代码应该可以正常工作,这里唯一缺少的是,如果您不将值作为引用 (&) 传递,那么目前您无法在结果数组中进行更改。你也可以分组一点
foreach ($result as $key => &$value) {
}
相关文章:
- 调用php数组中的JS函数
- 将PHP变量分配给PHP数组
- php数组转换为javascript
- 如何用javascript打印php数组
- 将PHP数组传递给js变量
- javascript变量到php数组
- 如何将JSON编码的PHP数组发送到同一页面上的数据表
- 如何在PHP数组中加载下一个youtube
- 使用Angular.js访问php数组数据
- 将Javascript数组转换为PHP数组
- 使用mysql为JSON php数组分配多个列值
- 如何通过AJAX发送PHP数组
- 使用ajax将php数组传递给javascript
- 在Javascript代码中显示PHP数组变量
- 将php数组转换为javascript数组
- 将 PHP 数组传递给 HTML 页面
- 如何将php数组转换为javascript数组
- PHP 数组到 JavaScript 数组
- 将 JavaScript 数组转换为 PHP 数组
- 将PHP数组发送到Javascript