我希望根据是否存在密钥来回显不同的图像。
以下是使用
的数组的示例["Person"] => array(11) {
["id"] => int(38482818123)
["weight"] => int(140)
["height"] => int(65)
}
["Name"] => array(2) {
["firstname"] => string(4) "John"
["lastname"] => string(5) "Smith"
}
所以名字字段并不总是存在。如果名称在那里,我需要显示image a
,如果没有名称,我需要显示image b
。
我尝试过的事情:
foreach($personArray as $person)
{
if ($person['Name'] != '')
{
echo "<img src='image-a.png'>";
}
else
{
echo "<img src='image-b.png'>";
}
}
现在我遇到的问题是即使这个人有名字,我也会在页面上看到这两个图片,而不仅仅是image a
我也尝试使用array_key_exists("Name", $personArray);
,但出于某种原因,我得到了bool(false)
。
答案 0 :(得分:3)
首先,似乎你有一个不同的名字数组,我想知道为什么你没有这样的东西:
["Person"] => array(11) {
["id"] => int(38482818123)
["weight"] => int(140)
["height"] => int(65)
["firstname"] => string(4) "John"
["lastname"] => string(5) "Smith"
}
根据这种情况,可能没有为某些人设置带有“firstname”,“lastname”键的数组索引。因此,您可以使用
检查是否设置了该索引isset()函数; 功能
尝试:
foreach($personArray as $person)
{
if (isset($person['firstname']) && isset($person['lastname']) ) // You may use or as well ||
{
echo "<img src='image-a.png'>";
}
else
{
echo "<img src='image-b.png'>";
}
// Or as a short hand if statement:
echo (isset($person['firstname'])&& isset($person['lastname'])) ? "<img src='image-a.png'>" : "<img src='image-b.png'>";
}
修改:1 您似乎仍在使用两个不同的数组:Person和Name。这样做,您无法说出哪个人具有名称值: 例如:如果你有10个人并且姓名数组有名字,姓氏只有7人,那么你将有人[0],人[1] .....人[9]和姓名[0] .. .NAME [6]。 根据您的构造,Person和Name数组之间没有任何引用/链接。假设第一个人有姓名,那么人[0]和姓名[0]将代表同一个人。但是如果前三个人没有Name,那么Person [3]将具有Name [0] ......依此类推,因此,无法识别特定Name数组属于哪个Person。注意:你不能在Person的foreach()中使用Name [“firstname”]。因为,您的名称数组的格式为Name [0] [“firstname”],Name [0] [“lastname”]等等。
底线:
如果可能,尝试使用/包含Person数组本身中的firstname,lastname。这样,当使用foreach()迭代/循环遍历Person数组时,你可以检查这些人是否都有名字,姓氏或名字:希望这是明确的。
答案 1 :(得分:1)
您需要使用cd ~/Some-Random-Project
git init
...
,如下所示: -
empty()