我有2个潜在的响应数组,我不知道我会得到哪一个。 但我知道它将是以下之一:
我的目标是检查我的回答是否属于该类别之一,并根据该回答做我的逻辑。
我尝试使用PHP count()
函数,但它们都返回2 - ,它是相同的值。
我应该检查一下,知道我得到了什么类型的回应?
阵列#1
array:2 [▼
0 => array:2 [▼
"content" => "Administrator"
"XSI:TYPE" => "xs:string"
]
1 => array:2 [▼
"content" => "Read Only"
"XSI:TYPE" => "xs:string"
]
]
阵列#2
array:2 [▼
"content" => "Read Only"
"XSI:TYPE" => "xs:string"
]
答案 0 :(得分:2)
我同意proposed by cmorrissey in the comments似乎是最好的方式:
因为您知道数组键,所以这是检查的最快方法
Sub Button1_Click() Dim Customers() As String Dim STD, LTD, LIFE, FMLA As Boolean Dim FilePath As String Dim i, c, n As Integer i = 15 c = 0 n = 0 Range("C15").End(xlDown).Activate Dim r As String r = ActiveCell.Row For i = 15 To r STD = False LTD = False LIFE = False FMLA = False If ActiveSheet.Rows(i).Hidden = False Then Dim loc As String loc = "C" & i Range(loc).Activate ReDim Customers(c) Customers(c) = ActiveCell.Value Dim MyFile As String If Range("Z" & i).Value <> "" Then STD = True End If If Range("AA" & i).Value <> "" Then LTD = True End If If Range("AB" & i).Value <> "" Then FMLA = True End If If Range("AC" & i).Value <> "" Then LIFE = True End If MyFile = Customers(c) If STD = True Then MyFile = MyFile & " - STD" End If If LTD = True Then MyFile = MyFile & " - LTD" End If If LIFE = True Then MyFile = MyFile & " - Life" End If If FMLA = True Then MyFile = MyFile & " - FMLA" End If MsgBox (MyFile) FilePath = Application.GetSaveAsFilename(MyFile) c = c + 1 End If Next End Sub
对于你不知道数组键是什么的情况,我之前的回答应该仍然有效:
从阵列中获取第一项。
if(isset($myArray['content'])){ } else { }
然后数数。
$first = reset($array);
您也可以使用if (count($first) > 1) {
// it's like array 1
} else {
// it's like array 2 ( count($any_string) always returns 1 )
}
。这可能会快一点。
答案 1 :(得分:1)
我认为这可以帮助您区分两个相同计数的数组。您可以将COUNT_RECURSIVE
标记与count
函数一起使用。
if(count($array1,COUNT_RECURSIVE)==count($array2,COUNT_RECURSIVE))
{
echo "Both's value are strings with equal count";
}
elseif(count($array1,COUNT_RECURSIVE)>count($array2,COUNT_NORMAL))
{
echo "Array one is array of arrays";
}
else
{
echo "Array two is array of arrays";
}
答案 2 :(得分:1)
我知道您需要知道数组内是否存在其他数组。我有这个可行的解决方案。
我们可以有这样的数组:
$array = array(1, "string", array(1, 2));
它有一个整数,字符串和数组。我们可以使用gettype()函数来获取事物的类型。
在这个例子中:
foreach($array as $row) {
echo gettype($row) . '<br>';
}
我们有下一个结果:
integer
string
array
我们可以这样做:
foreach($array as $row) {
if(gettype($row) == 'array') {
echo "This is an array<br>";
} else {
echo "Keep trying guy...<br>";
}
}
结果将是:
Keep trying guy...
Keep trying guy...
This is an array
我希望对你有所帮助,并记住“爱编码”:)
答案 3 :(得分:0)
我不完全确定我逐字理解这个问题,但我最初的感觉是你要检查父数组是否有任何子数组元素?
在那种情况下,我认为你的意思是?
foreach ($response as $element) {
if (is_array($element)) {
// The element is an array
} else {
// The element is not an array
}
}