연관 배열을 문자열로 바꾸는 빠른 방법을 찾고 있습니다. 일반적인 구조는 URL 쿼리 문자열과 같지만 사용자 정의 가능한 구분 기호가 있으므로 &
xhtml 링크 에는 ‘ ‘를 사용하고 &
그렇지 않으면 ‘ ‘를 사용할 수 있습니다 .
내 첫 번째 경향은 사용하는 foreach
것이지만 한 번의 요청으로 내 메서드를 여러 번 호출 할 수 있기 때문에 너무 느릴 수 있습니다.
<?php
$Amp = $IsXhtml ? '&' : '&';
$Parameters = array('Action' => 'ShowList', 'Page' => '2');
$QueryString = '';
foreach ($Parameters as $Key => $Value)
$QueryString .= $Amp . $Key . '=' . $Value;
더 빠른 방법이 있습니까?
답변
http_build_query()
그렇게하는 데 사용할 수 있습니다 .
제공된 연관 (또는 인덱싱 된) 배열에서 URL로 인코딩 된 쿼리 문자열을 생성합니다.
답변
제쳐두고, 나는 연관 배열을 파열시키는 가장 좋은 방법을 찾고 있었지만 내 자신의 구분 기호 등을 사용했습니다.
그래서 저는 PHP의 array_walk () 함수를 사용하여 HTML 태그에 적용 할 수있는 매개 변수 목록에 연관 배열을 결합 할 수 있도록했습니다 ….
// Create Params Array
$p = Array("id"=>"blar","class"=>"myclass","onclick"=>"myJavascriptFunc()");
// Join Params
array_walk($p, create_function('&$i,$k','$i=" $k=\"$i\"";'));
$p_string = implode($p,"");
// Now use $p_string for your html tag
분명히, 당신은 어떻게 든 당신 자신의 함수에 그것을 붙일 수 있지만 그것은 당신이 당신 자신의 방법을 사용하여 연관 배열을 결합 할 수있는 방법에 대한 아이디어를 제공합니다. 누군가를 돕는 희망 🙂
답변
정확한 형식 에 대해 걱정하지 않는 경우 간단한 것을 원하지만 줄 바꿈없이 빠르고 간단한 형식의 출력을 print_r
사용할 수도 있습니다 json_encode($value)
. ( 다른 데이터 유형에서도 잘 작동합니다. )
$str = json_encode($arr);
//output...
[{"id":"123","name":"Ice"},{"id":"234","name":"Cake"},{"id":"345","name":"Pie"}]
답변
예를 들어 div 데이터 속성에 대한 내 솔루션입니다.
<?
$attributes = array(
'data-href' => 'http://example.com',
'data-width' => '300',
'data-height' => '250',
'data-type' => 'cover',
);
$dataAttributes = array_map(function($value, $key) {
return $key.'="'.$value.'"';
}, array_values($attributes), array_keys($attributes));
$dataAttributes = implode(' ', $dataAttributes);
?>
<div class="image-box" <?= $dataAttributes; ?> >
<img src="http://example.com/images/best-of.jpg" alt="">
</div>
답변
한 가지 방법은 사용 print_r(array, true)
하고 배열의 문자열 표현을 반환합니다.
답변
function array_to_attributes ( $array_attributes )
{
$attributes_str = NULL;
foreach ( $array_attributes as $attribute => $value )
{
$attributes_str .= " $attribute=\"$value\" ";
}
return $attributes_str;
}
$attributes = array(
'data-href' => 'http://example.com',
'data-width' => '300',
'data-height' => '250',
'data-type' => 'cover',
);
echo array_to_attributes($attributes) ;
답변
간단한 배열에서 HTML 속성 문자열 (따옴표 포함)을 생성하는 한 줄짜리 :
$attrString = str_replace("+", " ", str_replace("&", "\" ", str_replace("=", "=\"", http_build_query($attrArray)))) . "\"";
예:
$attrArray = array("id" => "email",
"name" => "email",
"type" => "email",
"class" => "active large");
echo str_replace("+", " ", str_replace("&", "\" ", str_replace("=", "=\"", http_build_query($attrArray)))) . "\"";
// Output:
// id="email" name="email" type="email" class="active large"