object(phpseclib\Math\BigInteger-6ren">
gpt4 book ai didi

PHP 数组 : How to get this hexadecimal value from array

转载 作者:行者123 更新时间:2023-12-04 12:15:44 24 4
gpt4 key购买 nike

我已经检索了一个这样的数组:echo "<pre>"; var_dump($trigger);结果是:

array(5) {
[0]=>
object(phpseclib\Math\BigInteger)#372 (2) {
["value"]=>
string(4) "0x02"
["engine"]=>
string(3) "gmp"
}
[1]=>
object(phpseclib\Math\BigInteger)#376 (2) {
["value"]=>
string(4) "0x03"
["engine"]=>
string(3) "gmp"
}
[2]=>
object(phpseclib\Math\BigInteger)#371 (2) {
["value"]=>
string(4) "0x01"
["engine"]=>
string(3) "gmp"
}
[3]=>
object(phpseclib\Math\BigInteger)#373 (2) {
["value"]=>
string(6) "0x00a8"
["engine"]=>
string(3) "gmp"
}
[4]=>
array(6) {
[0]=>
object(phpseclib\Math\BigInteger)#383 (2) {
["value"]=>
string(4) "0x0f"
["engine"]=>
string(3) "gmp"
}
[1]=>
object(phpseclib\Math\BigInteger)#377 (2) {
["value"]=>
string(4) "0x0c"
["engine"]=>
string(3) "gmp"
}
[2]=>
object(phpseclib\Math\BigInteger)#381 (2) {
["value"]=>
string(4) "0x1b"
["engine"]=>
string(3) "gmp"
}
[3]=>
object(phpseclib\Math\BigInteger)#380 (2) {
["value"]=>
string(4) "0x05"
["engine"]=>
string(3) "gmp"
}
[4]=>
object(phpseclib\Math\BigInteger)#367 (2) {
["value"]=>
string(4) "0x16"
["engine"]=>
string(3) "gmp"
}
[5]=>
object(phpseclib\Math\BigInteger)#418 (2) {
["value"]=>
string(4) "0x17"
["engine"]=>
string(3) "gmp"
}
}
}
array(5) {
[0]=>
object(phpseclib\Math\BigInteger)#407 (2) {
["value"]=>
string(4) "0x03"
["engine"]=>
string(3) "gmp"
}
[1]=>
object(phpseclib\Math\BigInteger)#384 (2) {
["value"]=>
string(4) "0x01"
["engine"]=>
string(3) "gmp"
}
[2]=>
object(phpseclib\Math\BigInteger)#394 (2) {
["value"]=>
string(4) "0x01"
["engine"]=>
string(3) "gmp"
}
[3]=>
object(phpseclib\Math\BigInteger)#300 (2) {
["value"]=>
string(4) "0x06"
["engine"]=>
string(3) "gmp"
}
[4]=>
array(6) {
[0]=>
object(phpseclib\Math\BigInteger)#401 (2) {
["value"]=>
string(4) "0x14"
["engine"]=>
string(3) "gmp"
}
[1]=>
object(phpseclib\Math\BigInteger)#392 (2) {
["value"]=>
string(4) "0x19"
["engine"]=>
string(3) "gmp"
}
[2]=>
object(phpseclib\Math\BigInteger)#404 (2) {
["value"]=>
string(4) "0x02"
["engine"]=>
string(3) "gmp"
}
[3]=>
object(phpseclib\Math\BigInteger)#385 (2) {
["value"]=>
string(4) "0x08"
["engine"]=>
string(3) "gmp"
}
[4]=>
object(phpseclib\Math\BigInteger)#399 (2) {
["value"]=>
string(4) "0x0f"
["engine"]=>
string(3) "gmp"
}
[5]=>
object(phpseclib\Math\BigInteger)#299 (2) {
["value"]=>
string(4) "0x0a"
["engine"]=>
string(3) "gmp"
}
}
}
array(5) {
[0]=>
object(phpseclib\Math\BigInteger)#370 (2) {
["value"]=>
string(4) "0x04"
["engine"]=>
string(3) "gmp"
}
[1]=>
object(phpseclib\Math\BigInteger)#376 (2) {
["value"]=>
string(4) "0x03"
["engine"]=>
string(3) "gmp"
}
[2]=>
object(phpseclib\Math\BigInteger)#375 (2) {
["value"]=>
string(4) "0x01"
["engine"]=>
string(3) "gmp"
}
[3]=>
object(phpseclib\Math\BigInteger)#398 (2) {
["value"]=>
string(6) "0x00a8"
["engine"]=>
string(3) "gmp"
}
[4]=>
array(6) {
[0]=>
object(phpseclib\Math\BigInteger)#396 (2) {
["value"]=>
string(4) "0x05"
["engine"]=>
string(3) "gmp"
}
[1]=>
object(phpseclib\Math\BigInteger)#378 (2) {
["value"]=>
string(4) "0x0a"
["engine"]=>
string(3) "gmp"
}
[2]=>
object(phpseclib\Math\BigInteger)#379 (2) {
["value"]=>
string(4) "0x0c"
["engine"]=>
string(3) "gmp"
}
[3]=>
object(phpseclib\Math\BigInteger)#373 (2) {
["value"]=>
string(4) "0x13"
["engine"]=>
string(3) "gmp"
}
[4]=>
object(phpseclib\Math\BigInteger)#390 (2) {
["value"]=>
string(4) "0x19"
["engine"]=>
string(3) "gmp"
}
[5]=>
object(phpseclib\Math\BigInteger)#388 (2) {
["value"]=>
string(4) "0x1c"
["engine"]=>
string(3) "gmp"
}
}
}
现在我需要获取十六进制值(例如: 0x020x03 等)。
我已经试过了 var_dump($trigger[1]->value);我得到了这个:
object(GMP)#411 (1) {
["num"]=>
string(1) "0"
}
object(GMP)#382 (1) {
["num"]=>
string(1) "3"
}
object(GMP)#409 (1) {
["num"]=>
string(1) "1"
}
object(GMP)#383 (1) {
["num"]=>
string(1) "3"
}
object(GMP)#401 (1) {
["num"]=>
string(1) "3"
}
object(GMP)#396 (1) {
["num"]=>
string(1) "3"
}
object(GMP)#416 (1) {
["num"]=>
string(1) "3"
}
object(GMP)#400 (1) {
["num"]=>
string(1) "3"
}
object(GMP)#395 (1) {
["num"]=>
string(1) "1"
}
object(GMP)#381 (1) {
["num"]=>
string(1) "3"
}
object(GMP)#404 (1) {
["num"]=>
string(1) "3"
}
但它似乎不是十六进制值!
那么我怎样才能从这个 $trigger 中正确地获得十六进制值大批 ?
我真的很感激你们的任何想法或建议......
提前致谢。
更新 #1:
如果我说 var_dump($trigger[0][1]->value) ,我收到此错误:

Error Cannot use object of type phpseclib\Math\BigInteger as array


更新 #2:
我正在使用 Tron API 访问所有 contract信息。我可以正确获取所有门票信息并使用 for loop ,我可以得到这个数组作为每张票的结果。
这样做的背后的代码在这里:
         try {
$totalTck = $TransactionBuilder->triggerSmartContract(
(array)$abi,
$contractH,
$function,
$params,
$feeLimit,
$addressH,
$callValue = 0,
$bandwidthLimit = 0);

// $totalMinus = ($totalTck[0]->value) - 1;
$totalMinus = 10;
for($i=0;$i<=$totalMinus;$i++){
$address = ADDRESS;
$addressH = $tron->toHex($address);
$contract = CONTRACT;
$contractH = $tron->toHex($contract);
$function="getTicketInfo";
$params=array("0"=>$i);
$feeLimit=30000000;
$callValue = 0;
$bandwidthLimit = 0;
try {
$trigger = $TransactionBuilder->triggerSmartContract(
(array)$abi,
$contractH,
$function,
$params,
$feeLimit,
$addressH,
$callValue = 0,
$bandwidthLimit = 0);

var_dump($trigger[0][1]->value);
//$query = DB::table('tickets')->insert([
// 'userId' => '',
// 'types' => '',
// 'startRound' => '',
// 'endRound' => '',
// 'numbers' => $trigger[0]->value
//]);
} catch (\IEXBase\TronAPI\Exception\TronException $e) {
die($e->getMessage());
}
}
} catch (\IEXBase\TronAPI\Exception\TronException $e) {
die($e->getMessage());
}

最佳答案

BigInteger 类(class)
有一个 toHex()方法。所以你可以得到这样的十六进制值:

echo '0x'.$trigger[0]->toHex();
您可以遍历 $trigger像这样的数组:
foreach($trigger as $e)
{
if(is_array($e))
{
foreach($e as $t)
echo '0x'.$t->toHex().'<br>';
}
else
echo '0x'.$e->toHex().'<br>';
}

关于PHP 数组 : How to get this hexadecimal value from array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67605446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com