我有下面的php数组$tempStyleArray
,它是通过吐出字符串创建的。
$tempStyleArray = preg_split( "/[:;]+/", "width: 569px; height: 26.456692913px; margin: 0px; border: 2px solid black;" );
Array
(
[0] => width
[1] => 569px
[2] => height
[3] => 26.456692913px
[4] => margin
[5] => 0px
[6] => border
[7] => 2px solid black
[8] =>
)
我必须从此数组中获取元素index/key
的{{1}}。我试过下面的代码,但似乎没有什么对我有用。
height
在上述解决方案中它不满足条件:(
foreach($tempStyleArray as $value)
{
if($value == "height") // not satisfying this condition
{
echo $value;
echo '</br>';
$key = $i;
}
}
帮帮我解决这个问题?我的数组格式有问题吗?
答案 0 :(得分:4)
foreach($tempStyleArray as $value)
{
if($value == "height") // not satisfying this condition
{
echo $value;
echo '</br>';
$key = $i;
}
}
什么是$ i ?,最好使用key =&gt;值。
foreach($tempStyleArray as $key => $value)
{
if($value == "height") // not satisfying this condition
{
echo $value;
echo '</br>';
echo $key;
}
}
看看你的数组,看来你想说“宽度”将是569像素,那么最好这样做:
$tempStyleArray = array(
"width" => "569px",
"height" => "26.456692913px",
"margin" => "0px",
"border" => "2px solid black"
);
这样你就可以说
echo $tempStyleArray["width"];
这会更快,您无需进行搜索。
更新:
for( $i == 1; $i < count($tempStyleArray); $i = $i+2)
{
$newArray[ $tempStyleArray[$i-1] ] = $tempStyleArray[$i]
}
你可以得到一个基于散列的数组。
答案 1 :(得分:2)
你从数组中取错了值
应该是
foreach($tempStyleArray as $temp => $value) {
if($value == "height") // will satisfy this condition
{
echo $value;
echo '</br>';
$key = $i;
}
}
答案 2 :(得分:2)
试试这个 -
$tempStyleArray = array_map('trim', preg_split( "/[:;]+/", "width: 569px; height: 26.456692913px; margin: 0px; border: 2px solid black;" ));
var_dump($tempStyleArray);
$key = array_search('height', $tempStyleArray);
echo $key;
之所以发生这种情况,是因为space
中的值为array
。所以需要trimmed
。拆分字符串后,每个值都将通过trim()
传递,以便删除white spaces
。
答案 3 :(得分:2)
使用如下(像associative
数组一样对待
foreach($tempStyleArray as $key => $value){
if($value == "height") // not satisfying this condition
{
echo $value;
echo '</br>';
echo $key;
}
}
答案 4 :(得分:1)
您的代码中存在错误。请尝试:
foreach($tempStyleArray as $key => $value)
{
if($value == "height")
{
echo $key;
}
}