열 정수 값을 날짜 식으로 변환
나는 다음과 같은 이름의 연상 배열을 가지고 있습니다.$data
Array
(
[0] => Array
(
[transaction_user_id] => 359691e27b23f8ef3f8e1c50315cd506
[transaction_no] => 19500912050218
[transaction_total_amount] => 589.00
[transaction_date] => 1335932419
[transaction_status] => cancelled
)
[1] => Array
(
[transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
[transaction_no] => 36010512050819
[transaction_total_amount] => 79.00
[transaction_date] => 1336476696
[transaction_status] => cancelled
)
[2] => Array
(
[transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
[transaction_no] => 19020512050820
[transaction_total_amount] => 299.00
[transaction_date] => 1336476739
[transaction_status] => cancelled
)
[3] => Array
(
[transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
[transaction_no] => 27050512050821
[transaction_total_amount] => 79.00
[transaction_date] => 1336476927
[transaction_status] => cancelled
)
[4] => Array
(
[transaction_user_id] => 8e9050a3646c98342b9ba079fba80982
[transaction_no] => 12070512050822
[transaction_total_amount] => 129.00
[transaction_date] => 1336477032
[transaction_status] => cancelled
)
)
그리고 나는 키의 값을 변환하고 싶습니다.[transaction_date]사용자가 읽을 수 있는 형식(예: mm/dd/yyyy)으로 변환합니다.이를 위해 전체 배열을 반환하는 함수에 다음 코드를 작성했습니다.
foreach($data as $value)
{
$value[transaction_date]=date('d/m/Y',$value[transaction_date]);
}
return $data;
문제는 스토리지의 가치를 변경하지 않고도 동일한 어레이를 사용할 수 있다는 것입니다.[transaction_date]모든 배열 요소에 대해.다음에 대한 업데이트된 값을 가진 실제[transaction_date]반환될 것으로 예상됩니다.
이 문제는 어떻게 해결할 수 있습니까?
각을 다음과 같은 것으로 변경합니다. 반환 변수에 데이터를 다시 할당하지 않습니다.$data그것에 대한 수술을 한 후에.
foreach($data as $key => $value)
{
$data[$key]['transaction_date'] = date('d/m/Y',$value['transaction_date']);
}
이것도 효과가 있을 거예요!
foreach($data as &$value) {
$value['transaction_date'] = date('d/m/Y', $value['transaction_date']);
}
대안에 찬성합니다!
PHP array_walk() 함수는 특히 배열을 변경하기 위한 것입니다.
사용해 보십시오.
array_walk ( $data, function (&$key) {
$key["transaction_date"] = date('d/m/Y',$key["transaction_date"]);
});
다중 분파 배열에는 array_walk_recursive 함수를 사용합니다.
array_walk_recursive($data, function (&$v, $k) {
if($k == 'transaction_date'){
$v = date('d/m/Y',$v);
}
});
가장 좋은 방법은 "array_walk" 기본 함수 내에서 람다를 사용하여 필요한 변경을 하는 것입니다.
array_walk($data, function (&$value, $key) {
if($key == 'transaction_date'){
$value = date('d/m/Y', $value);
}
});
이 값은 참조 "&"로 전달될 때 배열에서 업데이트됩니다.
이 단일 솔루션은 your_field는 설정할 필드이고 new_value는 함수 또는 단일 값을 사용할 수 있는 새 값 필드입니다.
foreach ($array as $key => $item) {
$item["your_field"] = "new_value";
$array[$key] = $item;
}
이 경우 new_value는 date() 함수가 됩니다.
foreach($data as $value)
{
$value["transaction_date"] = date('d/m/Y',$value["transaction_date"]);
}
return $data;
언급URL : https://stackoverflow.com/questions/15472033/convert-column-integer-values-into-date-expressions
'programing' 카테고리의 다른 글
| 데이터를 읽기 위해 데이터베이스 트랜잭션이 필요합니까? (0) | 2023.08.05 |
|---|---|
| 하나의 거대한 .css 파일과 여러 개의 더 작은 특정 .css 파일? (0) | 2023.08.05 |
| 모델/테이블 별칭이 작동하지 않음(내부 조인) (0) | 2023.08.05 |
| NotificationCompat.Android O에서 Builder가 더 이상 사용되지 않음 (0) | 2023.08.05 |
| 스프링 - POST 후 리디렉션(검증 오류가 발생한 경우에도) (0) | 2023.08.05 |